{"version":3,"file":"0c4051f1bbb75440f9b3d1ba2f5a3e66d3e9900f-a26ac8ab59a73e3c503b.js","mappings":"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SACL,IAAK,SACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,QACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,SACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,QACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,SACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,SACL,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,SACL,IAAK,SACL,IAAK,UACL,IAAK,SACL,IAAK,SACL,IAAK,WACL,IAAK,SACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,SACL,IAAK,SACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,YACL,IAAK,SACL,IAAK,QACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,WACL,IAAK,OACL,IAAK,OACL,IAAK,OACL,IAAK,YACL,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,QACL,IAAK,YACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,YACL,IAAK,SACL,IAAK,QACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,WACL,IAAK,OACL,IAAK,OACL,IAAK,OACL,IAAK,YACL,IAAK,OACL,IAAK,QACL,IAAK,WACL,IAAK,UACL,IAAK,QACL,IAAK,YACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,UACL,IAAK,aACL,IAAK,UACL,IAAK,QACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,YACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,UACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,WACL,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,OACL,IAAK,SACL,IAAK,QACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,UACL,IAAK,OACL,IAAK,UACL,IAAK,OACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,UACL,IAAK,WACL,IAAK,SACL,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,SACL,IAAK,SACL,IAAK,QACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,YAGThC,MAAO,CACLoE,SAAU,CACR,SAAU,IACV,UAAW,IACX,OAAQ,IACR,QAAS,IACT,UAAW,IACX,WAAY,IACZ,WAAY,IACZ,SAAU,IACV,UAAW,IACX,QAAS,IACT,QAAS,KACT,U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AK,OACL,KAAM,SACN,IAAK,QACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,SACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,cACL,IAAK,iBACL,IAAK,UACL,IAAK,cACL,IAAK,wBACL,IAAK,sBACL,IAAK,UACL,IAAK,sBACL,IAAK,uBACL,IAAK,qBACL,IAAK,uBACL,IAAK,QACL,IAAK,eACL,KAAM,SACN,IAAK,WACL,IAAK,QACL,IAAK,QACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,QACL,IAAK,SACL,KAAM,QACN,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,qBACL,IAAK,yBACL,IAAK,UACL,KAAM,SACN,IAAK,YACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,gBACL,IAAK,SACL,IAAK,QACL,IAAK,SACL,IAAK,UACL,IAAK,iBACL,IAAK,QACL,KAAM,QACN,IAAK,sBACL,IAAK,SACL,KAAM,SACN,IAAK,WACL,IAAK,SACL,IAAK,SACL,IAAK,OACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,QACL,IAAK,SACL,KAAM,QACN,IAAK,QACL,KAAM,SACN,IAAK,QACL,IAAK,cACL,IAAK,SACL,IAAK,mBACL,IAAK,YACL,IAAK,QACL,IAAK,WACL,KAAM,SACN,IAAK,OACL,IAAK,WACL,IAAK,UACL,IAAK,QACL,IAAK,UACL,IAAK,kBACL,IAAK,WACL,IAAK,gBACL,IAAK,SACL,IAAK,WACL,IAAK,WACL,IAAK,SACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,QACL,IAAK,SACL,IAAK,aACL,IAAK,WACL,IAAK,UACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,OACL,IAAK,UACL,KAAM,SACN,IAAK,SACL,IAAK,aACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,KAAM,QACN,KAAM,SACN,KAAM,SACN,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,SACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,KAAM,QACN,KAAM,SACN,KAAM,SACN,IAAK,SACL,IAAK,OACL,IAAK,WACL,IAAK,WACL,IAAK,SACL,IAAK,WACL,IAAK,qBACL,IAAK,WACL,IAAK,WACL,IAAK,QACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,sBACL,IAAK,oBACL,IAAK,sBACL,IAAK,WACL,IAAK,mBACL,IAAK,oBACL,IAAK,UACL,IAAK,eACL,IAAK,kBACL,IAAK,UACL,IAAK,oBACL,IAAK,mBACL,IAAK,qBACL,IAAK,oBACL,IAAK,kBACL,IAAK,oBACL,IAAK,UACL,IAAK,kBACL,IAAK,cACL,IAAK,SACL,IAAK,OACL,IAAK,aACL,IAAK,QACL,IAAK,SACL,KAAM,QACN,IAAK,OACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,KAAM,SACN,IAAK,YACL,IAAK,YACL,IAAK,QACL,IAAK,WACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,gBACL,IAAK,WACL,KAAM,QACN,IAAK,OACL,KAAM,SACN,IAAK,OACL,IAAK,SACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,QACL,IAAK,mBACL,KAAM,YACN,KAAM,QACN,IAAK,YACL,IAAK,SACL,IAAK,aACL,IAAK,QACL,IAAK,WACL,IAAK,cACL,IAAK,UACL,IAAK,YACL,IAAK,OACL,KAAM,UACN,IAAK,YACL,IAAK,SACL,IAAK,SACL,KAAM,UACN,KAAM,SACN,IAAK,SACL,KAAM,SACN,IAAK,UACL,KAAM,UACN,KAAM,WACN,IAAK,kBACL,KAAM,uBACN,IAAK,oBACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,KAAM,SACN,KAAM,SACN,IAAK,UACL,KAAM,4BACN,KAAM,sBACN,IAAK,UACL,KAAM,YACN,IAAK,WACL,IAAK,YACL,IAAK,mBACL,KAAM,wBACN,IAAK,qBACL,KAAM,oBACN,IAAK,YACL,KAAM,sBACN,IAAK,YACL,KAAM,UACN,IAAK,cACL,IAAK,UACL,KAAM,YACN,IAAK,WACL,KAAM,qBACN,KAAM,UACN,IAAK,cACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,YACL,IAAK,UACL,KAAM,SACN,IAAK,WACL,IAAK,OACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,QACL,IAAK,WACL,KAAM,QACN,IAAK,WACL,IAAK,UACL,IAAK,QACL,IAAK,YACL,KAAM,SACN,IAAK,UACL,IAAK,UACL,IAAK,OACL,KAAM,SACN,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,SACL,IAAK,UACL,IAAK,cACL,IAAK,SACL,IAAK,oBACL,IAAK,SACL,IAAK,QACL,KAAM,QACN,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,WACL,IAAK,OACL,IAAK,SACL,IAAK,WACL,IAAK,gBACL,IAAK,UACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,KAAM,SACN,IAAK,QACL,IAAK,SACL,KAAM,QACN,IAAK,cACL,KAAM,SACN,IAAK,aACL,IAAK,QACL,IAAK,WACL,IAAK,SACL,IAAK,sBACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,QACL,IAAK,aACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,uBACL,IAAK,qBACL,IAAK,uBACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,mBACL,IAAK,UACL,IAAK,qBACL,IAAK,oBACL,IAAK,sBACL,IAAK,qBACL,IAAK,mBACL,IAAK,qBACL,IAAK,mBACL,IAAK,mBACL,IAAK,UACL,IAAK,iBACL,IAAK,UACL,IAAK,YACL,IAAK,QACL,IAAK,gBACL,IAAK,WACL,IAAK,SACL,IAAK,WACL,IAAK,WACL,IAAK,OACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,QACL,KAAM,QACN,IAAK,YACL,IAAK,UACL,IAAK,WACL,KAAM,SACN,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,aACL,IAAK,eACL,IAAK,aACL,IAAK,eACL,IAAK,UACL,KAAM,SACN,IAAK,WACL,IAAK,WACL,IAAK,aACL,IAAK,SACL,IAAK,WACL,IAAK,gBACL,IAAK,YACL,IAAK,QACL,IAAK,WACL,IAAK,WACL,IAAK,aACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACL,KAAM,QACN,IAAK,QACL,IAAK,WACL,IAAK,WACL,IAAK,QACL,KAAM,QACN,IAAK,cACL,IAAK,UACL,KAAM,eACN,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,KAAM,SACN,IAAK,SACL,KAAM,SACN,IAAK,WACL,IAAK,WACL,IAAK,SACL,IAAK,aACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,QACL,IAAK,WACL,KAAM,QACN,IAAK,WACL,IAAK,UACLuC,EAAG,WACH,IAAK,eACL,IAAK,SACL,IAAK,qBACL,IAAK,SACL,IAAK,UACL,IAAK,UACL,KAAM,SACN,IAAK,eACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,SACL,IAAK,aACL,IAAK,YACL,IAAK,YACL,IAAK,UACL,IAAK,YACL,IAAK,UACL,KAAM,SACN,IAAK,WACL,IAAK,SACL,IAAK,UACL,IAAK,SACL,IAAK,QACL,IAAK,UACL,IAAK,WACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,sBACL,IAAK,WACL,IAAK,WACL,KAAM,QACN,KAAM,SACN,KAAM,SACN,IAAK,WACL,IAAK,UACL,IAAK,WACL,KAAM,QACN,KAAM,SACN,KAAM,SACN,KAAM,QACN,IAAK,OACL,KAAM,SACN,KAAM,SACN,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,QACL,KAAM,QACN,KAAM,SACN,KAAM,SACN,IAAK,SACL,IAAK,SACL,IAAK,WACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,WACL,IAAK,aACL,KAAM,SACN,IAAK,WACL,IAAK,WACL,IAAK,WACL,KAAM,QACN,IAAK,QACL,IAAK,UACL,IAAK,QACL,IAAK,UACL,KAAM,QACN,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,SACL,IAAK,aACL,IAAK,SACL,IAAK,UACL,IAAK,SACL,IAAK,kBACL,IAAK,aACL,IAAK,aACL,IAAK,aACL,IAAK,aACL,IAAK,aACL,IAAK,aACL,IAAK,aACL,IAAK,aACL,IAAK,UACL,IAAK,YACL,IAAK,aACL,IAAK,WACL,IAAK,YACL,IAAK,UACL,KAAM,SACN,IAAK,QACL,IAAK,WACL,IAAK,aACL,IAAK,SACL,IAAK,SACL,IAAK,UACL,KAAM,SACN,IAAK,WACL,IAAK,WACL,IAAK,SACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,SACL,IAAK,UACL,IAAK,WACL,IAAK,aACL,IAAK,aACL,IAAK,QACL,IAAK,WACL,IAAK,YACL,IAAK,SACL,IAAK,SACL,IAAK,UACL,KAAM,QACN,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,KAAM,QACN,KAAM,YACN,IAAK,SACL,KAAM,SACN,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,KAAM,SACN,IAAK,UACL,KAAM,SACN,IAAK,UACL,IAAK,aACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,WACL,IAAK,aACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,KAAM,SACN,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,YACL,IAAK,SACL,IAAK,YACL,IAAK,SACL,KAAM,QACN,IAAK,SACL,IAAK,cACL,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,OACL,IAAK,SACL,IAAK,SACL,IAAK,UACL,IAAK,aACL,IAAK,WACL,IAAK,YACL,IAAK,aACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,eACL,IAAK,YACL,KAAM,SACN,IAAK,WACL,IAAK,UACL,IAAK,UACL,KAAM,SACN,IAAK,SACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,YACL,IAAK,YACL,IAAK,gBACL,IAAK,gBACL,IAAK,mBACL,IAAK,YACL,IAAK,QACL,IAAK,aACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,KAAM,SACN,IAAK,oBACL,IAAK,YACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,SACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,mBACL,IAAK,UACL,IAAK,QACL,IAAK,UACL,IAAK,YACL,IAAK,WACL,KAAM,QACN,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,SACL,IAAK,aACL,IAAK,WACLC,EAAG,WACH,KAAM,SACN,IAAK,SACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,aACL,IAAK,WACL,KAAM,SACN,IAAK,SACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,iBACL,IAAK,YACL,IAAK,SACL,IAAK,aACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,YACL,IAAK,QACL,IAAK,SACL,IAAK,kBACL,KAAM,QACN,IAAK,OACL,IAAK,WACL,IAAK,eACL,IAAK,WACL,IAAK,OACL,IAAK,aACL,IAAK,QACL,IAAK,gBACL,IAAK,WACL,IAAK,UACL,IAAK,eACL,IAAK,WACL,IAAK,WACL,IAAK,SACL,IAAK,QACL,IAAK,SACL,IAAK,UACL,KAAM,SACN,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,YACL,IAAK,eACL,IAAK,WACL,IAAK,YACL,IAAK,YACL,IAAK,aACL,IAAK,iBACL,IAAK,UACL,IAAK,SACL,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,QACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,KAAM,QACN,IAAK,UACLC,GAAI,UACJ,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,SACL,KAAM,SACN,IAAK,cACL,IAAK,UACL,IAAK,aACL,IAAK,SACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,KAAM,SACN,IAAK,eACL,IAAK,WACL,IAAK,UACL,IAAK,cACL,IAAK,WACL,IAAK,UACL,IAAK,QACL,IAAK,SACL,IAAK,UACL,IAAK,WACL,IAAK,YACL,IAAK,aACL,KAAM,SACN,IAAK,WACL,KAAM,QACN,IAAK,UACL,IAAK,SACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,UACL,IAAK,aACL,IAAK,SACL,IAAK,UACL,KAAM,SACN,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,YACL,IAAK,WACL,KAAM,SACN,IAAK,WACL,IAAK,YACL,IAAK,wBACL,IAAK,WACL,IAAK,UACL,IAAK,cACL,IAAK,SACL,IAAK,WACL,KAAM,QACN,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,KAAM,SACN,IAAK,WACL,KAAM,SACN,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,QACL,IAAK,SACL,IAAK,UACL,KAAM,QACN,IAAK,WACL,IAAK,SACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,SACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,aACL,IAAK,aACL,IAAK,aACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,KAAM,SACN,IAAK,SACL,IAAK,WACL,KAAM,SACN,IAAK,UACL,IAAK,YACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,KAAM,QACN,IAAK,UACL,KAAM,SACN,KAAM,SACN,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,aACL,IAAK,WACL,IAAK,QACL,KAAM,QACN,IAAK,WACL,IAAK,SACL,IAAK,SACL,KAAM,SACN,KAAM,SACN,IAAK,WACL,IAAK,UACL,IAAK,eACL,IAAK,SACL,IAAK,WACL,IAAK,aACL,IAAK,WACL,IAAK,UACL,IAAK,eACL,IAAK,UACL,IAAK,YACL,IAAK,WACL,IAAK,kBACL,IAAK,WACL,IAAK,YACL,IAAK,kBACL,IAAK,QACL,IAAK,WACL,IAAK,SACL,KAAM,UACN,IAAK,UACL,IAAK,UACL,IAAK,SACL,IAAK,SACL,IAAK,UACL,IAAK,YACL,IAAK,YACL,IAAK,WACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,YACL,IAAK,aACL,IAAK,SACL,IAAK,QACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,YACL,IAAK,aACL,KAAM,SACN,IAAK,WACL,IAAK,UACL,IAAK,WACL,KAAM,QACN,IAAK,QACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,eACL,IAAK,UACL,IAAK,aACL,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,KAAM,SACN,IAAK,WACL,IAAK,YACL,IAAK,WACL,IAAK,YACL,IAAK,SACL,IAAK,WACL,IAAK,WACL,IAAK,QACL,IAAK,UACL,IAAK,WACL,KAAM,SACN,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,SACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,YACL,IAAK,WACL,IAAK,iBACL,IAAK,aACL,IAAK,YACL,KAAM,SACN,IAAK,UACL,IAAK,UACL,IAAK,SACL,IAAK,YACL,IAAK,WACL,IAAK,WACL,IAAK,QACL,IAAK,UACL,KAAM,QACN,IAAK,QACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,YACL,IAAK,SACL,IAAK,WACL,KAAM,SACN,KAAM,SACN,IAAK,OACL,IAAK,UACL,KAAM,QACN,KAAM,QACN,IAAK,UACL,IAAK,UACL,KAAM,QACN,KAAM,QACN,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,KAAM,SACN,KAAM,SACN,KAAM,UACN,IAAK,UACL,IAAK,YACL,IAAK,SACL,IAAK,WACL,IAAK,WACL,KAAM,aACN,IAAK,SACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,KAAM,UACN,IAAK,SACL,KAAM,QACN,IAAK,oBACL,IAAK,UACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,KAAM,UACN,IAAK,eACL,IAAK,SACL,KAAM,SACN,IAAK,QACL,KAAM,WACN,KAAM,aACN,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,KAAM,WACN,KAAM,UACN,IAAK,YACL,IAAK,gBACL,KAAM,WACN,KAAM,WACN,KAAM,SACN,IAAK,SACL,KAAM,eACN,IAAK,SACL,KAAM,eACN,IAAK,WACL,IAAK,OACL,IAAK,QACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,KAAM,SACN,IAAK,WACL,KAAM,SACN,KAAM,SACN,IAAK,YACL,IAAK,WACL,KAAM,SACN,KAAM,SACN,KAAM,YACN,IAAK,WACL,KAAM,YACN,KAAM,UACN,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,QACL,IAAK,WACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,KAAM,QACN,IAAK,SACL,IAAK,WACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,YACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,YACL,IAAK,SACL,KAAM,SACN,IAAK,SACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,WACL,IAAK,SACL,IAAK,YACL,IAAK,QACL,IAAK,WACL,IAAK,SACL,IAAK,WACL,IAAK,aACL,IAAK,SACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,QACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,YACL,KAAM,QACN,IAAK,QACL,IAAK,WACL,IAAK,UACL,IAAK,OACL,IAAK,UACL,IAAK,YACL,IAAK,SACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,UACL,IAAK,YACL,IAAK,YACL,IAAK,aACL,KAAM,SACN,IAAK,UACL,IAAK,QACL,IAAK,eACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,aACL,IAAK,aACL,IAAK,aACL,IAAK,WACL,KAAM,SACN,IAAK,QACL,IAAK,WACL,KAAM,QACN,KAAM,SACN,IAAK,WACL,KAAM,SACN,IAAK,YACL,IAAK,UACL,IAAK,WACL,IAAK,SACL,KAAM,SACN,IAAK,WACL,IAAK,aACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,YACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,YACL,IAAK,mBACL,IAAK,oBACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,SACL,IAAK,SACL,IAAK,UACL,IAAK,YACL,IAAK,YACL,IAAK,WACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,YACL,IAAK,SACL,IAAK,SACL,IAAK,WACL,KAAM,QACN,IAAK,WACL,IAAK,QACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,SACL,IAAK,QACL,IAAK,eACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,KAAM,SACN,IAAK,WACL,IAAK,YACL,IAAK,SACL,IAAK,WACL,IAAK,aACL,IAAK,WACL,KAAM,SACN,IAAK,WACL,IAAK,kBACL,IAAK,aACL,IAAK,YACL,IAAK,OACL,IAAK,WACL,IAAK,QACL,IAAK,eACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,aACL,IAAK,gBACL,IAAK,aACL,IAAK,aACL,IAAK,QACL,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,KAAM,QACN,IAAK,UACL,IAAK,WACL,IAAK,SACL,IAAK,QACL,IAAK,UACL,IAAK,aACL,IAAK,WACL,IAAK,SACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,YACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,KAAM,UACN,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,WACL,KAAM,SACN,IAAK,cACL,KAAM,WACN,KAAM,WACN,KAAM,SACN,IAAK,SACL,IAAK,WACL,IAAK,cACL,IAAK,WACL,IAAK,YACL,IAAK,YACL,IAAK,eACL,IAAK,cACL,IAAK,YACL,IAAK,YACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,cACL,IAAK,WACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,eACL,IAAK,cACL,IAAK,YACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,WACL,IAAK,WACL,IAAK,QACL,IAAK,WACL,KAAM,QACN,IAAK,UACL,IAAK,aACL,IAAK,UACL,IAAK,UACL,IAAK,aACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,KAAM,SACN,IAAK,YACL,IAAK,WACL,IAAK,SACL,IAAK,SACL,IAAK,WACL,IAAK,aACL,IAAK,YACL,IAAK,UACL,IAAK,YACL,IAAK,aACL,KAAM,SACN,IAAK,SACL,IAAK,UACL,IAAK,WACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,QACL,IAAK,WACL,IAAK,WACL,KAAM,QACN,IAAK,WACL,IAAK,UACL,IAAK,aACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,KAAM,SACN,IAAK,YACL,IAAK,UACL,IAAK,aACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,KAAM,SACN,IAAK,UACL,IAAK,WACL,IAAK,SACL,IAAK,YACL,IAAK,SACL,IAAK,UACL,IAAK,WACL,KAAM,WACN,KAAM,WACN,KAAM,WACN,KAAM,WACN,IAAK,QACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,KAAM,QACN,KAAM,SACN,KAAM,SACN,IAAK,YACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,OACL,KAAM,QACN,KAAM,SACN,KAAM,SACN,KAAM,QACN,IAAK,OACL,IAAK,SACL,KAAM,SACN,KAAM,SACN,IAAK,WACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,KAAM,QACN,IAAK,SACL,KAAM,SACN,KAAM,SACN,IAAK,SACL,IAAK,SACL,IAAK,WACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,KAAM,QACN,IAAK,SACL,IAAK,YACL,KAAM,SACN,KAAM,SACN,IAAK,QACL,IAAK,8CC9xIX9J,OAAOD,eAAeQ,EAAS,aAAc,CAC3CuE,OAAO,IAETvE,EAAQgJ,kBAAoB,CAC1B,EAAG,MACH,IAAK,KACL,IAAK,KACL,IAAK,IACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,IACL,IAAK,KACL,IAAK,IACL,IAAK,KACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,IACL,IAAK,KACL,IAAK,IACL,IAAK,KACL,IAAK,IACL,IAAK,IACL,IAAK,uCC/BPvJ,OAAOD,eAAeQ,EAAS,aAAc,CAC3CuE,OAAO,IAETvE,EAAQ+I,cAAgBd,OAAOc,eAAiB,SAAUS,GACxD,OAAOvB,OAAOD,aAAayB,KAAKC,OAAOF,EAAkB,OAAS,MAAQ,OAAQA,EAAkB,OAAS,KAAO,MACtH,EACAxJ,EAAQmH,aAAec,OAAOvJ,UAAUiL,YAAc,SAAU3C,EAAO4C,GACrE,OAAO5C,EAAM2C,YAAYC,EAC3B,EAAI,SAAU5C,EAAO4C,GACnB,OAA8C,MAAtC5C,EAAMI,WAAWwC,GAAY,OAAgB5C,EAAMI,WAAWwC,EAAW,GAAK,MAAQ,KAChG,EACA5J,EAAQ6J,kBAAoB,MAC5B7J,EAAQ8J,gBAAkB,yBCbuC/J,EAAOC,QAC/D,WACP,aAEA,IAAI+J,EAAY,CAAC,OAAQ,OAAQ,KAAM,MAAO,UAAW,QAAS,KAAM,MAAO,QAAS,SAAU,OAAQ,OAAQ,QAAS,SAAU,QAAS,OAC1IC,EAAM,SAAaC,GACrB,OAAOhC,OAAOgC,GAAKC,QAAQ,YAAY,SAAU/F,GAC/C,MAAO,IAAMgG,EAAIhG,GAAK,GACxB,GACF,EACIgG,EAAM,CACR,IAAK,MACL,IAAK,KACL,IAAK,KACL,IAAK,OACL,IAAK,QAEHC,EAAmB,0BACnBC,EAAoB,CACtBC,UAAW,QACXC,QAAS,OAEPC,EAAY,CAAC,EACjB,SAASnJ,EAAE7C,EAAMiM,GACf,IAAIC,EAAQ,GACVvG,EAAI,GACNsG,EAAQA,GAAS,CAAC,EAClB,IAAK,IAAI/J,EAAI7B,UAAUJ,OAAQiC,KAAM,GACnCgK,EAAMC,KAAK9L,UAAU6B,IAEvB,GAAoB,mBAATlC,EAET,OADAiM,EAAMG,SAAWF,EAAMG,UAChBrM,EAAKiM,GAEd,GAAIjM,EAAM,CAER,GADA2F,GAAK,IAAM3F,EACPiM,EAAO,IAAK,IAAIK,KAAML,GACN,IAAdA,EAAMK,IAA8B,MAAbL,EAAMK,IAAeA,IAAOV,IACrDjG,GAAK,KAAOkG,EAAkBS,GAAMT,EAAkBS,GAAMd,EAAIc,IAAO,KAAOd,EAAIS,EAAMK,IAAO,KAGnG3G,GAAK,GACP,CACA,IAAiC,IAA7B4F,EAAUgB,QAAQvM,GAAc,CAClC,GAAIiM,EAAML,GACRjG,GAAKsG,EAAML,GAAkBY,YACxB,KAAON,EAAMjM,QAAQ,CAC1B,IAAIwM,EAAQP,EAAMQ,MAClB,GAAID,EACF,GAAIA,EAAMC,IACR,IAAK,IAAIC,EAAMF,EAAMxM,OAAQ0M,KAC3BT,EAAMC,KAAKM,EAAME,SAGnBhH,IAA0B,IAArBqG,EAAUS,GAAkBA,EAAQjB,EAAIiB,EAGnD,CACA9G,GAAK3F,EAAO,KAAOA,EAAO,IAAM,EAClC,CAEA,OADAgM,EAAUrG,IAAK,EACRA,CACT,CACA,OAAO9C,CACT,CAhEkF+J,6GCCvE,EAAS,iCAWTC,EAAkB,2GCGtB,SAASC,EAAgBC,GAC9B,IAAMC,GAAoB,IAAIC,MAAOC,UAC/BC,EAA0B,IAAIF,KAAKF,EAAKI,iBAAiBD,UACzDE,EAA8B,IAAIH,KAAKF,EAAKK,qBAAqBF,UAEvE,QACGE,IAAwBJ,EAAYG,GAAmBH,GAAaI,IACrEJ,EAAYG,EAIhB,CAEA,IA2FA,EA3FuC,SAAHE,GAAiC,IAA3BN,EAAIM,EAAJN,KAAMO,EAAKD,EAALC,MAAOC,EAAMF,EAANE,OA2DrD,OACEC,EAAAA,cAAA,MAAI1B,UD/EkB,uCC+Ec,aAAYwB,GAC7CP,EAAKU,OAAOX,GAAiBnB,KA5DlC,SAAuB+B,GACrB,IACMC,EAA4BD,EAASE,iBAAiB3N,OAD5B,IAE1B4N,EAAmB,SAAYH,EAASI,KACxCC,EAAqBL,EAASK,YAAcL,EAASK,WAAWpC,KAAI,SAAAtJ,GAAC,OAAIA,EAAEiL,KAAK,IAAEU,KAAK,MAEvFC,EAC8C,eAAlDC,EAAAA,YAAyBA,EAAAA,QACrB,aACAA,EAAAA,YAAyBA,EAAAA,QACzBf,GAAkBgB,EAAAA,EAAAA,IAAO,IAAIlB,KAAKS,EAASP,iBAAkBc,GAEnE,OACET,EAAAA,cAAA,MAAIrL,IAAKuL,EAASU,GAAItC,UDvCN,mCCuCkC,kBAAiB4B,EAASJ,OAC1EE,EAAAA,cAAA,OAAK1B,UDpCe,0CCqClB0B,EAAAA,cAAA,OAAK1B,UDjCc,2CCkChBqB,EAAgB,IAAgC,GAA9BO,EAASK,WAAW9N,OAAc,KAAO,MAE9DuN,EAAAA,cAAA,OAAK1B,UD/CS,sCC+CsBiC,IAEtCP,EAAAA,cAAA,OAAK1B,UD7CgB,2CC8CnB0B,EAAAA,cAAA,OAAK1B,UD1Ce,4CC2CQ,OAAzB4B,EAASW,MAAMF,OACdX,EAAAA,cAACc,EAAAA,EAAQ,CACPC,IAAKb,EAASW,MAAMG,IACpB1C,UAAW2C,EACXC,gBAAiB,SAAAC,GAAG,OAAIA,EAAIC,aAAa,aAAclB,EAASW,MAAMQ,KAAO,GAAG,IAGlFrB,EAAAA,cAAA,OAAKe,IAAKb,EAASW,MAAMG,IAAK1C,UAAW2C,EAAeI,IAAKnB,EAASW,MAAMQ,KAAO,MAGvFrB,EAAAA,cAAA,OAAK1B,UDxDkB,+CCyDrB0B,EAAAA,cAAA,MAAI1B,UDpDO,qCCoDuB4B,EAASJ,OAC3CE,EAAAA,cAAA,OAAK1B,UDzDuB,sDC0D1B0B,EAAAA,cAAA,OACE1B,UACE6B,EACOc,+CAAiD,GACjDA,GAGTjB,EAAAA,cAAA,KACEsB,wBAAyB,CACvBtC,OAAQuC,IAAarB,EAASE,sBAIpCJ,EAAAA,cAAA,KAAGwB,KAAMnB,EAAa/B,UAAc2C,gCAAeQ,EAAAA,IAChD1B,EAAO2B,sBAOtB,IAOF,+FCrEYC,EAAc,SAAdA,GAAc,OAAdA,EAAAA,EAAc,eAAdA,EAAAA,EAAc,iBAAdA,EAAAA,EAAc,6BAAdA,EAAAA,EAAc,qCAAdA,CAAc,MA+E1B,SAASC,EAAqBC,GAC5B,OAAQA,GACN,KAAKF,EAAeG,MAClB,MAAO,QACT,KAAKH,EAAeI,YAClB,MAAO,4BACT,KAAKJ,EAAeK,gBAClB,MAAO,oBACT,QACE,OAEN,CAEA,SAASC,EAAW1J,GAClB,OAAOA,GAASA,EAAM2J,OAAOzP,OAAS,CACxC,CAEA,IAzFqC,SAAHoN,GAc3B,IAbLe,EAAEf,EAAFe,GACAtO,EAAIuN,EAAJvN,KACAE,EAAIqN,EAAJrN,KACA2P,EAAQtC,EAARsC,SAAQC,EAAAvC,EACRvB,UAAAA,OAAS,IAAA8D,EAAG,GAAEA,EAAAC,EAAAxC,EACdyC,YAAAA,OAAW,IAAAD,EAAG,GAAEA,EAChB9J,EAAKsH,EAALtH,MACAgK,EAAQ1C,EAAR2C,SACAC,EAAQ5C,EAAR4C,SACAZ,EAAchC,EAAdgC,eACAa,EAAS7C,EAAT6C,UACAC,EAAO9C,EAAP+C,QACAC,EAAYhD,EAAZgD,aAEMC,EAAa,CACjBX,SAAAA,EACAY,QAASnB,EAAqBC,IAGhC,OAAmBmB,MAAZP,EACLzC,EAAAA,cAAA,QAAAvM,OAAAyE,OAAA,CACE0I,GAAIA,EACJtO,KAAMA,EACNE,KAAMA,EACN,mBAAkBoO,EAClB0B,YAAaA,EACbH,SAAUA,EACVc,aAAcpB,IAAmBF,EAAeI,YAAc,eAAiBc,EAAerQ,EAAO,KACrG8L,UACEmD,EAAAA,GACA,KACCQ,EAAW1J,GAASkJ,EAAAA,GAAwB,IAAM,KAClDiB,EAAYjB,EAAAA,GAA4B,IAAM,IAC/CnD,EAEFkE,SAAU,SAAAU,GACRX,GAAYA,EAASW,EAAMC,OAAO5K,MACpC,GACIkK,EAASjQ,EAAIiB,OAAAyE,OAAA,GAAO4K,IAAa,CACrCvK,MAAOA,EACPqK,QAAS,SAAAM,GACPP,GAAWA,EAAQO,EAAMC,OAAOvC,GAClC,KAGFZ,EAAAA,cAAA,SACEY,GAAIA,EACJtO,KAAMA,EACNE,KAAMA,EACN,mBAAkBoO,EAClBqC,aAAcpB,IAAmBF,EAAeI,YAAc,eAAiBc,EAAerQ,EAAO,KACrG8P,YAAaA,EACbH,SAAUA,EACV7D,UACEmD,EAAAA,GACA,KACCQ,EAAW1J,GAASkJ,EAAAA,GAAwB,IAAM,KAClDiB,EAAYjB,EAAAA,GAA4B,IAAM,IAC/CnD,EAEFkE,SAAU,SAAAU,GACRX,GAAYA,EAASW,EAAMC,OAAO5K,MACpC,EACAA,MAAOA,EACPqK,QAAS,SAAAM,GACPP,GAAWA,EAAQO,EAAMC,OAAOvC,GAClC,GAGN,0GCpGW,EAAU,8CAQV,EAAQ,4CCJRwC,EAAY,qECHZC,EAAW,wDAEX,EAAW,mECyChBC,EAAe,SAACzC,EAA2EvC,GAC/F,MAAqB,QAAjBuC,EAAMF,OAENX,EAAAA,cAACc,EAAAA,EAAQ,CACPC,IAAKF,EAAMG,IACX1C,UAAWA,EACX4C,gBAAiB,SAAAC,GAAG,OAAIA,EAAIC,aAAa,aAAcP,EAAMQ,KAAO,GAAG,IAItErB,EAAAA,cAAA,OAAKe,IAAKF,EAAMG,IAAKK,IAAKR,EAAMQ,KAAO,GAAI/C,UAAWA,EAAW,cAAY,QACtF,EAEA,EAzC0D,SAAHuB,GAAuC,IAAjC0D,EAAI1D,EAAJ0D,KAAMC,EAAmB3D,EAAnB2D,oBACjE,OACExD,EAAAA,cAAA,WAAS1B,UDlBU,0DCmBjB0B,EAAAA,cAAA,MAAI1B,UDdS,sDCeVgF,EAAaC,EAAKH,UDlBJ,0DCkBiC,IAAEG,EAAK/Q,MAEzDwN,EAAAA,cAAA,MAAI1B,UDlBiB,8DCmBlBiF,EAAKE,UAAUtF,KAAI,SAAAuF,GAAQ,OAC1B1D,EAAAA,cAAA,MAAIrL,IAAK+O,EAAS9C,GAAItC,UAAW2C,GAC9BqC,EAAaE,EAAoBG,aAAc1C,GAChDjB,EAAAA,cAAA,KAAGwB,KAAOkC,EAASE,MAAQF,EAASE,KAAK5C,KAAQ0C,EAASG,KAAMV,OAAO,UACpEO,EAASI,OAET,IAENP,EAAKQ,SACJ/D,EAAAA,cAAA,MAAIrL,IAAK4O,EAAK3C,GAAItC,UAAW2C,GAC1BqC,EAAaE,EAAoBQ,YAAa/C,GAC/CjB,EAAAA,cAAA,KAAGwB,KAAM+B,EAAKQ,QAAQ/C,IAAKiD,UAAQ,GAChCT,EAAoBU,oBAOnC,ECiBA,IAAMZ,EAAe,SAACzC,GACpB,MAAqB,QAAjBA,EAAMF,OAENX,EAAAA,cAACc,EAAAA,EAAQ,CACPC,IAAKF,EAAMG,IACX1C,UAAW2C,EACXC,gBAAiB,SAAAC,GAAG,OAAIA,EAAIC,aAAa,aAAcP,EAAMQ,KAAO,GAAG,IAKtErB,EAAAA,cAAA,OAAKe,IAAKF,EAAMG,IAAKK,IAAKR,EAAMQ,KAAO,GAAI/C,UAAW2C,EAAkB,cAAY,QAC7F,EAEA,EAvDqE,SAAHpB,GAI3D,IAHLsE,EAAetE,EAAfsE,gBACAC,EAAKvE,EAALuE,MACAZ,EAAmB3D,EAAnB2D,oBAEMa,EA2BR,SAAyBD,GACvB,OAAOA,EAAME,QAAO,SAACC,EAAahB,GAChC,IACMiB,GADkBD,EAAYE,IAAIlB,EAAKmB,SAAS9D,KAAO,IAC1BrM,OAAOgP,GAE1C,OADAgB,EAAYI,IAAIpB,EAAKmB,SAAS9D,GAAI4D,GAC3BD,CACT,GAAG,IAAIK,IACT,CAlCwBC,CAAgBT,GACtC,OACEpE,EAAAA,cAAA,WAAS1B,UHpBqB,iFGqB5B0B,EAAAA,cAAA,MAAI1B,UHpBwB,iFGqBzBgF,EAAaa,EAAgBf,WAC9BpD,EAAAA,cAAA,YAAOmE,EAAgB3R,OAEzBwN,EAAAA,cAAA,MAAI1B,UH7BgB,yEG8BjBwG,MAAMC,KAAKV,EAAcW,UAAU7G,KAAI,SAAA8G,GACtC,OACEjF,EAAAA,cAAA,MAAIrL,IAAKsQ,EAAW,GAAGP,SAAS9D,IAC9BZ,EAAAA,cAAA,MAAI1B,UHhCS,0EGgCyB2G,EAAW,GAAGP,SAASZ,OAC7D9D,EAAAA,cAAA,MAAI1B,UHhCK,sEGiCN2G,EAAW9G,KAAI,SAAAoF,GAAI,OAClBvD,EAAAA,cAAA,MAAIrL,IAAK4O,EAAK3C,GAAItC,UHrClB,iEGsCE0B,EAAAA,cAACkF,EAA0B,CAAC3B,KAAMA,EAAMC,oBAAqBA,IAC1D,KAKf,KAIR,EC4BA,MA5DsD,SAAH3D,GAM5C,IALLuE,EAAKvE,EAALuE,MACAe,EAAYtF,EAAZsF,aACAC,EAAoBvF,EAApBuF,qBACAC,EAAuBxF,EAAvBwF,wBACA7B,EAAmB3D,EAAnB2D,oBAEM8B,EAAgBlB,EAAMnE,OA2B9B,SACEkF,EACAC,EACAC,GAEA,OAAO,SAAA9B,GACL,IAAMgC,GAAaJ,GAAgBA,EAAavE,KAAO2C,EAAK3C,GACtD4E,GACHJ,GAAwB7B,EAAKkC,eAAeC,MAAK,SAAAC,GAAY,OAAIA,EAAa/E,KAAOwE,EAAqBxE,EAAE,IACzGgF,GACHP,GACD9B,EAAKsC,iBAAiBH,MAAK,SAAAI,GAAe,OAAIA,EAAgBlF,KAAOyE,EAAwBzE,EAAE,IAEjG,OAAO2E,GAAaC,GAAqBI,CAC3C,CACF,CA1CqCG,CAAoBZ,EAAcC,EAAsBC,IACrFW,EA2CR,SAAgC5B,GAC9B,OAAOA,EAAME,QAAO,SAAC2B,EAAwB1C,GAC3C,IACMiB,GADkByB,EAAuBxB,IAAIlB,EAAKY,gBAAgBvD,KAAO,IAC5CrM,OAAOgP,GAE1C,OADA0C,EAAuBtB,IAAIpB,EAAKY,gBAAgBvD,GAAI4D,GAC7CyB,CACT,GAAG,IAAIrB,IACT,CAlD0BsB,CAAuBZ,GAC/C,OAA6B,IAAzBA,EAAc7S,OACTuN,EAAAA,cAAA,OAAK1B,UC1BM,oDD0BuBkF,EAAoB2C,eAG7DnG,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAA,KAAG1B,UC3BiB,uDD2BesC,GAAG,mCAAmCwF,UAAW,GACjF5C,EAAoB6C,cAEvBrG,EAAAA,cAAA,MAAI1B,UC/BW,mDDgCZwG,MAAMC,KAAKiB,EAAgBhB,UAAU7G,KAAI,SAAAmI,GACxC,OACEtG,EAAAA,cAAA,MAAIrL,IAAK2R,EAAW,GAAGnC,gBAAgBvD,GAAItC,UCnCnC,kDDoCN0B,EAAAA,cAACuG,EAAqC,CACpCpC,gBAAiBmC,EAAW,GAAGnC,gBAC/BC,MAAOkC,EACP9C,oBAAqBA,IAI7B,KAIR,wBEhDWgD,EAAe,oDACfC,EAAQ,6CACRC,EAAW,gDACX,EAAQ,mECkLbpD,EAAe,SAACzC,GACpB,MAAqB,QAAjBA,EAAMF,OAENX,EAAAA,cAACc,EAAAA,EAAQ,CACPC,IAAKF,EAAMG,IACX1C,UAAW2C,EACXC,gBAAiB,SAAAC,GAAG,OAAIA,EAAIC,aAAa,aAAcP,EAAMQ,KAAO,GAAG,IAKtErB,EAAAA,cAAA,OAAKe,IAAKF,EAAMG,IAAKK,IAAKR,EAAMQ,KAAO,GAAI/C,UAAW2C,EAAc,cAAY,QACzF,EAEA,SAAS0F,EACPvC,EACAe,EACAE,GAEA,OAAIA,EACGF,EAGEA,EAAaM,eAAexF,QACjC,SAAA0F,GAAY,OAAIA,EAAa/E,KAAOyE,EAAwBM,aAAa/E,EAAE,IAHpE,CAACyE,EAAwBM,cAM7Bb,MAAMC,KACXX,EACGE,QAAO,SAACmB,EAAgBlC,GACvB,OAAI4B,GAAgBA,EAAavE,KAAO2C,EAAK3C,IAG7C2C,EAAKkC,eAAemB,SAAQ,SAAAjB,GAAY,OAAIF,EAAed,IAAIgB,EAAa/E,GAAI+E,EAAa,IAFpFF,CAIX,GAAG,IAAIb,KACNI,UACH6B,MAAK,SAAC1Q,EAAGrB,GAAC,OAAMqB,EAAE3D,KAAOsC,EAAEtC,KAAO,EAAIsC,EAAEtC,KAAO2D,EAAE3D,MAAQ,EAAI,CAAC,GAClE,CAEA,SAASsU,EACP1C,EACAe,EACAC,GAEA,OAAID,EACKA,EAAaU,iBAAiB5F,QAAO,SAAA6F,GAC1C,OAAQV,GAAwBA,EAAqBxE,KAAOkF,EAAgBH,aAAa/E,EAC3F,IAEKkE,MAAMC,KACXX,EACGE,QAAO,SAACuB,EAAkBtC,GAEzB,OAD0B4B,GAAgBA,EAAavE,KAAO2C,EAAK3C,IAInE2C,EAAKsC,iBAAiBe,SAAQ,SAAAd,KAEzBV,GAAwBA,EAAqBxE,KAAOkF,EAAgBH,aAAa/E,KAElFiF,EAAiBlB,IAAImB,EAAgBlF,GAAIkF,EAE7C,IARSD,CAUX,GAAG,IAAIjB,KACNI,SAEP,CAEA,SAAS+B,EACP3C,EACAgB,EACAC,GAEA,OAAOjB,EAAMnE,QAAO,SAAAsD,GAClB,IAAMyD,GACH5B,GAAwB7B,EAAKkC,eAAeC,MAAK,SAAAC,GAAY,OAAIA,EAAa/E,KAAOwE,EAAqBxE,EAAE,IACzGqG,GACH5B,GACD9B,EAAKsC,iBAAiBH,MAAK,SAAAI,GAAe,OAAIA,EAAgBlF,KAAOyE,EAAwBzE,EAAE,IACjG,OAAOoG,GAA+BC,CACxC,GACF,CAEA,SAASC,EAAUC,EAAeC,EAAeC,GAC/C,OAAOD,EAASnH,QAAO,SAAAhF,GAAM,OAAsE,IAAlEoM,EAAUpM,GAAQqM,cAAcvI,QAAQoI,EAAMG,cAAqB,GACtG,CAEA,SAASC,EAAQC,GACf,OAAOA,EAAUA,EAAQhV,KAAO,EAClC,CAEA,MArPmD,SAAHqN,GAMzC,IALLuE,EAAKvE,EAALuE,MACAZ,EAAmB3D,EAAnB2D,oBACAiE,EAAS5H,EAAT4H,UACAC,EAAiB7H,EAAjB6H,kBACAlF,EAAQ3C,EAAR2C,SAEAmF,GAAwCC,EAAAA,EAAAA,UAAS,MAA1CzC,EAAYwC,EAAA,GAAEE,EAAeF,EAAA,GACpCG,GAAwDF,EAAAA,EAAAA,UAAS,MAA1DxC,EAAoB0C,EAAA,GAAEC,EAAuBD,EAAA,GACpDE,GAA8DJ,EAAAA,EAAAA,UAAS,MAAhEvC,EAAuB2C,EAAA,GAAEC,EAA0BD,EAAA,GAC1DE,GAAkDN,EAAAA,EAAAA,WAAS,GAApDO,EAAiBD,EAAA,GAAEE,EAAoBF,EAAA,GAC9CG,GAAkCT,EAAAA,EAAAA,WAAS,GAApCU,EAASD,EAAA,GAAEE,EAAYF,EAAA,GAExBG,EAA2BpE,EAAMnE,QAAO,SAAAsD,GAAI,OAAIA,EAAKE,UAAUhR,OAAS,GAAK8Q,EAAKQ,OAAO,IAqE/F,OAnEA0E,EAAAA,EAAAA,YAAU,WACRZ,EAAgBJ,IACZtC,GAAgBsC,IAClBc,GAAa,EAEjB,GAAG,CAACd,KACJgB,EAAAA,EAAAA,YAAU,WACRV,EAAwBL,IACpBtC,GAAwBsC,IAC1BU,GAAqB,EAEzB,GAAG,CAACV,KAEJe,EAAAA,EAAAA,YAAU,WACJtD,GACFoD,GAAa,EAEjB,GAAG,CAACpD,KAEJsD,EAAAA,EAAAA,YAAU,WACJrD,GACFgD,GAAqB,EAEzB,GAAG,CAAChD,IA6CFpF,EAAAA,cAAA,QAAM0I,SAlBR,SAAoBxF,IAClByF,EAAAA,EAAAA,IACE,UACA,mBACGxD,EAAeA,EAAayD,OAAS,IAAE,KAAIxD,EAAuBA,EAAqB5S,KAAO,IAAE,KACjG6S,EAA0BA,EAAwB7S,KAAO,IAE3D,IAEFgQ,EAAS,CACPe,KAAM4B,EACNQ,aAAcP,EACdU,gBAAiBT,IAEnBnC,EAAM2F,gBACR,GAII7I,EAAAA,cAAA,OAAK1B,UD5GmB,yDC8GrByI,EAAY3C,GAAO3R,OAAS,GAC3BuN,EAAAA,cAAA,OAAK1B,UAAW2C,GACbqC,EAAaE,EAAoBsF,gBAClC9I,EAAAA,cAAA,OAAK1B,UAAW2C,GACdjB,EAAAA,cAAA,SAAOzB,QAAQ,cAAciF,EAAoBuF,iBACjD/I,EAAAA,cAACgJ,EAAAA,EAAY,CACXxG,SAAUqF,EACVoB,gBArDd,SAAqB9B,GACnB,IAAM7B,EAAgByB,EAAYyB,EAA0BpD,EAAsBC,GAIlF,OAHKF,GACHoD,GAAa,GAERrB,EAAOC,EAAO7B,EAAeiC,EACtC,EAgDcA,QAASA,EACT3G,GAAG,aACHrI,MAAOkP,EACPnF,YAAakB,EAAoB0F,sBACjCpJ,MAAO0D,EAAoB0F,wBAE7BlJ,EAAAA,cAAA,OAAK1B,UAAW2C,GAAsBqH,EAAY9E,EAAoB2F,iBAAmB,QAM9FxC,EAAqBvC,GAAO3R,OAAS,GACpCuN,EAAAA,cAAA,OAAK1B,UAAW2C,GACbqC,EAAaE,EAAoB4F,yBAClCpJ,EAAAA,cAAA,OAAK1B,UAAW2C,GACdjB,EAAAA,cAAA,SAAOzB,QAAQ,uBAAuBiF,EAAoB6F,0BAC1DrJ,EAAAA,cAACgJ,EAAAA,EAAY,CACXxG,SAAUuF,EACVkB,gBAjEd,SAA8B9B,GAC5B,IAAMmC,EAAyB3C,EAAqB6B,EAA0BrD,EAAcE,GAI5F,OAHKD,GACHgD,GAAqB,GAEhBlB,EAAOC,EAAOmC,EAAwB/B,EAC/C,EA4DcA,QAASA,EACT3G,GAAG,sBACHrI,MAAOmP,EACPpF,YAAakB,EAAoB+F,+BACjCzJ,MAAO0D,EAAoB+F,iCAE7BvJ,EAAAA,cAAA,OAAK1B,UAAW2C,GACbkH,EAAoB3E,EAAoBgG,yBAA2B,QAO3E1C,EAAuB1C,GAAO3R,OAAS,GACtCuN,EAAAA,cAAA,OAAK1B,UAAW2C,GACbqC,EAAaE,EAAoBiG,2BAClCzJ,EAAAA,cAAA,OAAK1B,UAAW2C,GACdjB,EAAAA,cAAA,SAAOzB,QAAQ,yBAAyBiF,EAAoBkG,4BAC5D1J,EAAAA,cAACgJ,EAAAA,EAAY,CACXxG,SAAUyF,EACVgB,gBA/Ed,SAAgC9B,GAM9B,OAAOD,EAAOC,EALmBL,EAC/B0B,EACArD,EACAC,GAE6CmC,EACjD,EAyEcA,QAASA,EACT3G,GAAG,wBACH0B,YAAakB,EAAoBmG,iCACjC7J,MAAO0D,EAAoBmG,sCAMrC3J,EAAAA,cAAA,UAAQ1N,KAAK,SAASgM,UAAWmD,EAAAA,GAAAA,sDAC9B+B,EAAoBoG,mBAI7B,aCUA,EA7K+C,SAAH/J,GAA+C,IAAzCuE,EAAKvE,EAALuE,MAAON,EAAKjE,EAALiE,MAAON,EAAmB3D,EAAnB2D,oBACvDqG,GAAUC,EAAAA,EAAAA,eAAc,OAAQC,EAAAA,aAA1B,GACNC,GAAkBF,EAAAA,EAAAA,eAAc,eAAgBC,EAAAA,aAAlC,GACrBpC,GAAsCC,EAAAA,EAAAA,WAAS,GAAxCqC,EAAWtC,EAAA,GAAEuC,EAAcvC,EAAA,GAClCG,GAA4CF,EAAAA,EAAAA,UAAqB,CAC/DrE,KAAM,KACNoC,aAAc,KACdG,gBAAiB,OAHZqE,EAAcrC,EAAA,GAAEsC,EAAiBtC,EAAA,GAKlCuC,EAAqBjG,EAAMnE,QAAO,SAAAsD,GAAI,OAAIA,EAAKE,UAAUhR,OAAS,CAAC,IA0BzE,OAzBAgW,EAAAA,EAAAA,YAAU,YACJoB,GAAUG,IACZE,GAAe,GAEjB,IAAMI,EAAeD,EAAmBE,MAAK,SAAAhH,GAAI,OAAIA,EAAK3C,KAAOiJ,CAAM,IACjEW,EAAuBH,EAAmB/F,QAC9C,SAACmG,EAAmBlH,GAAI,OACtBkH,GAAqBlH,EAAKkC,eAAe8E,MAAK,SAAA5E,GAAY,OAAIA,EAAa/E,KAAOoJ,CAAc,GAAC,GACnG,MAEFI,EAAiB3W,OAAAyE,OAAC,CAAC,EACdiS,EAAe,CAClB5G,KAAM+G,EACN3E,aAAc6E,IAElB,GAAG,CAACX,EAAQG,IAWVhK,EAAAA,cAAA,WAAS,aAAY8D,GACnB9D,EAAAA,cAAA,OAAK1B,UCpDa,8CDqDhB0B,EAAAA,cAAA,MAAI1B,UCpDO,yCDoDmBkF,EAAoBkH,YAClD1K,EAAAA,cAAA,OACE1B,UCxDe,8CDyDfgD,wBAAyB,CACvBtC,OAAQuC,IAAaiC,EAAoBmH,gBAG7C3K,EAAAA,cAAC4K,EAAmB,CAClBxG,MAAOA,EACPZ,oBAAqBA,EACrBhB,SArBR,SAA0BqI,GAGY,IAADC,EAFnCZ,GAAe,GACfE,EAAkBS,GACI,oBAAXE,SACkD,QAA3DD,EAAAE,SAASC,eAAe,2CAAmC,IAAAH,GAA3DA,EAA6DI,QAEjE,EAgBQzD,UAAW0C,EAAe5G,KAC1BmE,kBAAmByC,EAAexE,gBAGtC3F,EAAAA,cAAA,OAAK1B,UAAU,UAAUsC,GAAG,4BACzBqJ,GACCjK,EAAAA,cAACmL,EAAsB,CACrB/G,MAAOiG,EACPlF,aAAcgF,EAAe5G,KAC7B6B,qBAAsB+E,EAAexE,aACrCN,wBAAyB8E,EAAerE,gBACxCtC,oBAAqBA,KAMjC,wBElFW4H,EAAU,iCCsBrB,EAduC,SAAHvL,GAAyC,IAAnCiE,EAAKjE,EAALiE,MAAOuH,EAAWxL,EAAXwL,YACzCC,EAD6DzL,EAAP0L,QACnCC,SAAS1H,GAElC,OACE9D,EAAAA,cAAA,SACE1N,KAAK,SACLmZ,QAAS,SAAC5W,GAAiD,OAAKwW,EAAYxW,EAAE,EAC9E,eAAcyW,EACdhN,UAAWgN,EAAcrK,qCAAiC,GAAQA,EAClE1I,MAAOuL,GAGb,ECdWzE,EAAkB,kDCS7B,EARiD,SAAHQ,GAAgC,IAA1BiE,EAAKjE,EAALiE,MAAOzD,EAAWR,EAAXQ,YACzD,OACEL,EAAAA,cAAA,KAAGwB,KAAMnB,EAAa/B,UCTK,uDDUxBwF,EAGP,EE+CA,EAjD8C,SAAHjE,GAAgC,IAA1B6L,EAAkB7L,EAAlB6L,mBAEzCC,GADWC,EAAAA,EAAAA,MAC0B,IAAM,IAC3CzL,KACJuL,EAAmBf,aAAee,EAAmBf,YAAYlY,OAASkZ,GAE5E,OACE3L,EAAAA,cAAA,OAAK1B,UHlBmB,iDGmBtB0B,EAAAA,cAAA,OAAK1B,UHdsB,sDGckBoN,EAAmB5L,OAChEE,EAAAA,cAAA,OAAK1B,UHlBwB,wDGmB1BoN,EAAmBG,SAAWH,EAAmBG,QAAQ7K,IACxDhB,EAAAA,cAAA,OAAK1B,UHlBqB,yDGmBc,OAArCoN,EAAmBG,QAAQlL,OAC1BX,EAAAA,cAACc,EAAAA,EAAQ,CACPC,IAAK2K,EAAmBG,QAAQ7K,IAChCE,gBAAiB,SAAAC,GAAG,OAAIA,EAAIC,aAAa,aAAcsK,EAAmBG,QAAQxK,KAAO,GAAG,IAG9FrB,EAAAA,cAAA,OAAKe,IAAK2K,EAAmBG,QAAQ7K,IAAKK,IAAKqK,EAAmBG,QAAQxK,KAAO,MAGnF,KACJrB,EAAAA,cAAA,OAAK1B,UH9B0B,4DG+B7B0B,EAAAA,cAAA,OACE1B,UACE6B,EAAsBc,sDAAiD,GAAQA,EAEjFnB,MAAO4L,EAAmBf,aAE1B3K,EAAAA,cAAA,KACEsB,wBAAyB,CACvBtC,OAAQuC,IAAamK,EAAmBf,iBAI9C3K,EAAAA,cAAA,OAAK1B,UH7CyB,6DG8C3BoN,EAAmBI,eAClB9L,EAAAA,cAAC+L,EAAiB,CAChBjI,MAAO4H,EAAmBM,iBAC1B3L,YAAaqL,EAAmBI,iBAEhC,QAMhB,ECyEA,EAhHoD,SAAHjM,GAI1C,IAHLiE,EAAKjE,EAALiE,MACAmI,EAAwBpM,EAAxBoM,yBACAC,EAAgCrM,EAAhCqM,iCAEMC,GAAWP,EAAAA,EAAAA,MACXQ,EAAsDH,EAC5DtE,GAA8BC,EAAAA,EAAAA,UAAmB,IAA1C2D,EAAO5D,EAAA,GAAE0E,EAAU1E,EAAA,GAC1BG,GAA8DF,EAAAA,EAAAA,UAASwE,GAAhEE,EAAuBxE,EAAA,GAAEyE,EAA0BzE,EAAA,GAEpD0E,EAA2B,WAAH,OAC5BxM,EAAAA,cAAA,OAAK1B,UCvBoB,yDDwBtBgO,EAAwBnO,KAAI,SAACsO,GAAgD,OAC5EzM,EAAAA,cAAA,OAAKrL,IAAK8X,EAAe7L,GAAItC,UC5BT,wDD6BlB0B,EAAAA,cAAC0M,EAAc,CAAChB,mBAAoBe,IAChC,IAEJ,EA4BR,OAJAhE,EAAAA,EAAAA,YAAU,WAVoB,IAACkE,EACvBC,EADuBD,EAWPpB,EAVhBqB,EAAqBR,EAAgBnM,QAAO,SAACwM,GACjD,IAAMI,EAAmCJ,EAAeK,gBAAgB3O,KAAI,SAAC4O,GAC3E,OAAOA,EAAKjN,KACd,IACA,OAAO6M,EAAcK,OAAM,SAACC,GAAiB,OAAKJ,EAAuBrB,SAASyB,EAAU,GAC9F,IACAV,EAA2BK,EAK7B,GAAG,CAACrB,IAGFvL,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAA,OAAK1B,UC7DuB,+DD8DxB6N,GACAnM,EAAAA,cAAA,OAAK1B,UC9DyB,oED+D5B0B,EAAAA,cAAA,OAAK1B,UCrEO,mDDqEuByC,IEtE/C,61EFsEgEM,IAAI,gBACvDyC,GAGL9D,EAAAA,cAAA,OAAK1B,UCjEwB,iEDkE1B4N,EAAiCgB,oBAAoB/O,KAAI,SAACgP,EAAsC3T,GAAK,OACpGwG,EAAAA,cAAA,OAAK1B,UC1EU,sDD0EuB3J,IAAK6E,GACzCwG,EAAAA,cAAA,OAAK1B,UCzEa,4DDyE0B6O,EAAerJ,OAC3D9D,EAAAA,cAAA,OAAK1B,UC3EgB,+DD4ElB6O,EAAeF,UAAU9O,KAAI,SAAC8O,EAAmCG,GAAG,OACnEpN,EAAAA,cAACqN,EAAO,CACN1Y,IAAKyY,EACLtJ,MAAOmJ,EAAUnN,MACjBuL,YAAa,SAACxW,GAAqC,OA3C/C,SAACoY,EAAmBE,GACxC,GAAK5B,EAAQC,SAASyB,GAIf,CACL,IAAMK,EAAuB/B,EAAQtL,QAAO,SAAA8M,GAAI,OAAIA,IAASE,CAAS,IACtEZ,EAAWiB,EACb,KAPkC,CAChC,IAAMC,EAAkBJ,EAAeF,UAAU9O,KAAI,SAAA4O,GAAI,OAAIA,EAAKjN,KAAK,IACjE0N,EAAgBjC,EAAQtL,QAAO,SAAA8M,GAAI,OAAKQ,EAAgB/B,SAASuB,EAAK,IAC5EV,EAAW,GAAD9X,QAAAkZ,EAAAA,EAAAA,GAAKD,GAAa,CAAEP,IAChC,CAIF,CAmCoBS,CAAc7Y,EAAE8Y,cAAcpV,MAAO4U,EAAe,EAEtD5B,QAASA,GACT,KAGF,KAENY,GAAYG,GAA2BE,MAG5CL,GAAYG,GAA2BE,IAG9C,EGjGW,EAAQ,mDAER1I,EAAQ,mDAER8J,EAAU,qDCwErB,EA9DwD,SAAH/N,GAA+C,IAAzCgO,EAAYhO,EAAZgO,aAAcrK,EAAmB3D,EAAnB2D,oBACjEF,EAAe,SAACzC,GACpB,MAAqB,QAAjBA,EAAMF,OAENX,EAAAA,cAACc,EAAAA,EAAQ,CACPC,IAAKF,EAAMG,IACX1C,UAAW2C,EACXC,gBAAiB,SAAAC,GAAG,OAAIA,EAAIC,aAAa,aAAcP,EAAMQ,KAAO,GAAG,IAKtErB,EAAAA,cAAA,OAAKe,IAAKF,EAAMG,IAAK1C,UAAW2C,EAAcI,IAAKR,EAAMQ,KAAO,GAAI,cAAY,QACzF,EAEA,OACErB,EAAAA,cAAA,eACEA,EAAAA,cAAA,MAAI1B,UD5BQ,mDC6BTuP,EAAahC,SAAWvI,EAAauK,EAAahC,SACnD7L,EAAAA,cAAA,YAAO6N,EAAarb,OAEtBwN,EAAAA,cAAA,OAAK1B,UDlCQ,oDCmCX0B,EAAAA,cAAA,OAAK1B,UAAW2C,GACdjB,EAAAA,cAAA,MAAI1B,UAAW2C,GACZqC,EAAaE,EAAoBsK,aAClC9N,EAAAA,cAAA,YAAOwD,EAAoBuK,eAE7B/N,EAAAA,cAAA,SACG6N,EAAaG,QACdhO,EAAAA,cAAA,WACC6N,EAAaI,QAAQ,IAAEJ,EAAalI,aAAanT,OAGtDwN,EAAAA,cAAA,OAAK1B,UAAW2C,GACdjB,EAAAA,cAAA,MAAI1B,UAAW2C,GACZqC,EAAaE,EAAoB0K,aAClClO,EAAAA,cAAA,YAAOwD,EAAoB2K,eAE7BnO,EAAAA,cAAA,SACG6N,EAAaO,MACbP,EAAaO,OAASP,EAAaQ,aAAerO,EAAAA,cAAA,WAClD6N,EAAaQ,cAGjBR,EAAaS,YAAY7b,OAAS,GACjCuN,EAAAA,cAAA,OAAK1B,UAAW2C,GACdjB,EAAAA,cAAA,MAAI1B,UAAW2C,GACbjB,EAAAA,cAACc,EAAAA,EAAQ,CACPC,IC/DhB,y0BDgEgBzC,UAAW2C,EACXC,gBAAiB,SAAAC,GAAG,OAAIA,EAAIC,aAAa,aAAc,SAAS,IAElEpB,EAAAA,cAAA,YAAO6N,EAAaS,YAAY,GAAGxO,QAErCE,EAAAA,cAAA,SAAI6N,EAAaS,YAAY,GAAGC,SAM5C,EE9CA,EAdyD,SAAH1O,GAAgD,IAA1C2O,EAAa3O,EAAb2O,cAAehL,EAAmB3D,EAAnB2D,oBACzE,OACExD,EAAAA,cAAA,MAAI1B,UCfa,uDDgBdkQ,EAAcrQ,KAAI,SAAA0P,GACjB,OACE7N,EAAAA,cAAA,MAAIrL,IAAKkZ,EAAajN,GAAItC,UCnBhB,sDDoBR0B,EAAAA,cAACyO,EAAwB,CAACZ,aAAcA,EAAcrK,oBAAqBA,IAGjF,IAGN,EExBW,EAAQ,iDACR,EAAW,oDACX,EAAQ,iDACR,EAAQ,iDCiHnB,IAAMF,EAAe,SAACzC,GACpB,MAAqB,QAAjBA,EAAMF,OAENX,EAAAA,cAACc,EAAAA,EAAQ,CACPC,IAAKF,EAAMG,IACX1C,UAAW2C,EACXC,gBAAiB,SAAAC,GAAG,OAAIA,EAAIC,aAAa,aAAcP,EAAMQ,KAAO,GAAG,IAKtErB,EAAAA,cAAA,OAAKe,IAAKF,EAAMG,IAAK1C,UAAW2C,EAAcI,IAAKR,EAAMQ,KAAO,GAAI,cAAY,QACzF,EASA,MAlHsD,SAAHxB,GAA0D,IAApD2O,EAAa3O,EAAb2O,cAAehL,EAAmB3D,EAAnB2D,oBAAqBhB,EAAQ3C,EAAR2C,SAC3FmF,GAAwDC,EAAAA,EAAAA,UAAS,MAA1DxC,EAAoBuC,EAAA,GAAEI,EAAuBJ,EAAA,GAE9ClC,GAAiBiJ,EAAAA,EAAAA,UAAQ,kBAoEjC,SAA+BF,GAC7B,OAAO1J,MAAMC,KACXyJ,EACGlK,QAAO,SAACqK,EAAmBd,GAE1B,OADAc,EAAkBhK,IAAIkJ,EAAalI,aAAa/E,GAAIiN,EAAalI,cAC1DgJ,CACT,GAAG,IAAI/J,KACNI,SAEP,CA7EuC4J,CAAsBJ,EAAc,GAAE,CAACA,IAEtEjO,GAAamO,EAAAA,EAAAA,UAAQ,kBA6E7B,SAA2BF,GACzB,OAAO1J,MAAMC,KACXyJ,EACGlK,QAAO,SAACuK,EAAehB,GAEtB,OADAgB,EAAclK,IAAIkJ,EAAaiB,SAASlO,GAAIiN,EAAaiB,UAClDD,CACT,GAAG,IAAIjK,KACNI,SAEP,CAtFmC+J,CAAkBP,EAAc,GAAE,CAACA,IAEpE1G,GAAoDF,EAAAA,EAAAA,UAASrH,GAAtDyO,EAAkBlH,EAAA,GAAEmH,EAAqBnH,EAAA,GAkBhD,OACE9H,EAAAA,cAAA,YACEA,EAAAA,cAAA,OAAK1B,UD9CmB,6DCgDtB0B,EAAAA,cAAA,OAAK1B,UAAW2C,GACdjB,EAAAA,cAAA,OAAK1B,UAAW2C,GACdjB,EAAAA,cAAA,SAAOzB,QAAQ,oBAAoBD,UAAW2C,GAC3CqC,EAAaE,EAAoB0L,kBAClClP,EAAAA,cAAA,YAAOwD,EAAoB2L,oBAE7BnP,EAAAA,cAACgJ,EAAAA,EAAY,CACXxG,SA3BZ,SAAgCmD,GAC9BoC,EAAwBpC,GACxBnD,EAAS,CAAEmD,aAAAA,EAAcpF,WAAYyO,GACvC,EAyBY/F,gBAAiB,SAAA9B,GAAK,OAsEpC,SAA8BA,EAAe1B,GACtC0B,GAAkBnE,MAATmE,IACZA,EAAQ,IAEV,OAAO1B,EAAexF,QAAO,SAAA0F,GAAY,OAAsE,IAAlEA,EAAanT,KAAK8U,cAAcvI,QAAQoI,EAAMG,cAAqB,GAClH,CA3EwC8H,CAAqBjI,EAAO1B,EAAe,EACrE8B,QAAS,SAAA5B,GAAY,OAAKA,EAAeA,EAAanT,KAAO,EAAE,EAC/DoO,GAAG,oBACH0B,YAAakB,EAAoB6L,wBACjCvP,MAAO0D,EAAoB6L,4BAMjCrP,EAAAA,cAAA,OAAK1B,UAAW2C,GACdjB,EAAAA,cAAA,YAAU1B,UAAW2C,GACnBjB,EAAAA,cAAA,UAAQ1B,UAAW2C,GAChBqC,EAAaE,EAAoB8L,cAClCtP,EAAAA,cAAA,YAAOwD,EAAoB+L,gBAE7BvP,EAAAA,cAAA,MAAI1B,UD9EQ,uDC+ETiC,EAAWpC,KAAI,SAAA2Q,GAAQ,OACtB9O,EAAAA,cAAA,MAAIrL,IAAKma,EAASlO,GAAItC,UD/EhB,qDCgFJ0B,EAAAA,cAACqN,EAAO,CACNvJ,MAAOgL,EAAStc,KAChB6Y,YAAa,kBA5CLmE,EA4C4BV,EAzClDW,EADET,EAAmBtJ,MAAK,SAAAoJ,GAAQ,OAAIA,EAASlO,KAAO4O,EAAiB5O,EAAE,IACzDoO,EAAmB/O,QAAO,SAAA6O,GAAQ,OAAIA,EAASlO,KAAO4O,EAAiB5O,EAAE,IAE5E,GAAArM,QAAAkZ,EAAAA,EAAAA,GAAOuB,GAAkB,CAAEQ,IAE1CP,EAAsBQ,QACtBjN,EAAS,CAAEmD,aAAcP,EAAsB7E,WAAYkP,IAR7D,IAA0BD,EACpBC,CA2CyD,EAC7ClE,QAASyD,EAAmB7Q,KAAI,SAAA4O,GAAI,OAAIA,EAAKva,IAAI,MAEhD,QAQrB,EC9FWkd,EAAU,kDAEVC,EAAoB,4DACpB,GAAQ,mFCOnBC,GAAAA,YAAuBC,EAAAA,OAAAA,EA4FvB,OAhFqD,SAAHhQ,GAK3C,IAJL2O,EAAa3O,EAAb2O,cACAsB,EAAWjQ,EAAXiQ,YACAtM,EAAmB3D,EAAnB2D,oBACA4B,EAAoBvF,EAApBuF,qBAEAuC,GAAsBC,EAAAA,EAAAA,UAAS,MAAxBzJ,EAAGwJ,EAAA,GAAEoI,EAAMpI,EAAA,GAClBG,GAAwDF,EAAAA,EAAAA,UAAS,MAA1DoI,EAAoBlI,EAAA,GAAEmI,EAAuBnI,EAAA,GACpDE,GAA8BJ,EAAAA,EAAAA,UAA4B,IAAnDsI,EAAOlI,EAAA,GAAEmI,EAAUnI,EAAA,GAEpBoI,GAASC,EAAAA,EAAAA,UA4Bf,OA1BAC,EAAAA,EAAAA,kBAAgB,WACdV,GAAAA,YAAuBE,EACvB,IAAMS,EAAU,IAAIX,GAAAA,IAAa,CAC/BY,UAAWJ,EAAOK,QAClBC,MAAO,qCACPC,OAAQ,CAACnN,EAAoBoN,UAAUC,UAAWrN,EAAoBoN,UAAUE,UAChFC,KAAM,IAERhB,EAAOQ,EACT,GAAG,KAEH9H,EAAAA,EAAAA,YAAU,WACR,GAAKtK,EAAL,CAGA,IAAM6S,EAqBV,SACE7S,EACA8S,EACAzC,GAEA,IAAM0C,EAAY,OAAUnR,KAAAA,cAAqBoR,IAAG,KAAKpR,KAAAA,cAAqBqR,MAAK,KAAKrR,KAAAA,cAAqBsR,KAAI,IAEjH,OADAJ,EAAgBrK,SAAQ,SAAA0K,GAAM,OAAIA,EAAOC,QAAQ,IAC1C/C,EAAcrQ,KAAI,SAAA0P,GACvB,IAAM2D,EAAgBxG,SAASyG,cAAc,OAC7CD,EAAczQ,IAAM8M,EAAaiB,SAAS1L,UAAUpC,IACpDwQ,EAAcnQ,IAAMwM,EAAarb,KACjCgf,EAAcd,MAAMgB,MAAQ,OAC5BF,EAAcd,MAAMiB,OAAS,OAC7B,IAAMC,EAAY,iBAAoB3Q,EAAwB,oBACnDA,GAAY,KAAK4M,EAAarb,KAAI,sBACnCyO,EAAc,WACtB4M,EAAaG,QAAO,mBAEpBH,EAAalI,aAAanT,KAAI,UAC9Bqb,EAAaO,MAAQ,OAASP,EAAaO,MAAQ,IAAE,UACrDP,EAAaQ,YAAc,OAASR,EAAaQ,YAAc,IAAE,uBAI7DwD,EAAQ,IAAIjC,GAAAA,MAAe,CAAEkC,SAAU,SAAUC,QAAQH,GAC/D,OAAO,IAAIhC,GAAAA,OAAgB,CAAEoC,MAAOd,EAAc1J,QAASgK,IACxDS,UAAU,CAACpE,EAAaqE,SAASrB,UAAWhD,EAAaqE,SAASpB,WAClEqB,SAASN,GACTO,MAAMjU,EACX,GACF,CAnDuBkU,CAA0BlU,EAAK+R,EAAS1B,GAC3D2B,EAAWa,EAFX,CAGF,GAAG,CAAC7S,EAAKqQ,KAET/F,EAAAA,EAAAA,YAAU,YACJtK,IAAOiH,GAA0B4K,GAAwB5K,EAAqBxE,KAAOoP,EAAqBpP,IASlH,SAAiCzC,EAAmBwH,GAClDxH,EAAImU,OAAO,CACT3B,OAAQ,CAAChL,EAAauM,SAASrB,UAAWlL,EAAauM,SAASpB,UAChEC,KAAM,IAEV,CAbMwB,CAAwBpU,EAAKiH,GAE/B6K,EAAwB7K,EAC1B,GAAG,CAACA,IAEGpF,EAAAA,cAAA,OAAKwS,IAAKpC,EAAQ9R,UD3DV,8CC2DiC,cAAY,QAC9D,ECSO,ICvEH/D,GAAIC,GDiKR,GA1IkD,SAAHqF,GAAoE,IAA9DiE,EAAKjE,EAALiE,MAAON,EAAmB3D,EAAnB2D,oBAAqBgL,EAAa3O,EAAb2O,cAAesB,EAAWjQ,EAAXiQ,YAC9FnI,GAA4CC,EAAAA,EAAAA,UAAqB,CAC/DjC,aAAc,KACdpF,WAAY,KAFP4J,EAAcxC,EAAA,GAAEyC,EAAiBzC,EAAA,GAKlC8K,GAAwB/D,EAAAA,EAAAA,UAC5B,kBAAMF,EAAcvO,QA+BYmF,EA/BsB+E,EAAexE,aA+BMqJ,EA/BQ7E,EAAe5J,WAgC7F,SAAAsN,GACL,IAAMrI,GAAqBJ,GAAwByI,EAAalI,aAAa/E,KAAOwE,EAAqBxE,GACnG8R,EAC0B,IAA9B1D,EAAmBvc,QAAgBuc,EAAmBtJ,MAAK,SAAAoJ,GAAQ,OAAIA,EAASlO,KAAOiN,EAAaiB,SAASlO,EAAE,IAEjH,OAAO4E,GAAqBkN,CAC9B,IAPF,IAAoCtN,EAA2C4J,CA/BmC,GAC9G,CAAC7E,EAAgBqE,IAGnB,OACExO,EAAAA,cAAA,WAAS,aAAY8D,EAAOxF,UE9BA,0DF+B1B0B,EAAAA,cAAA,OAAK1B,UEjCa,kDFkChB0B,EAAAA,cAAA,MAAI1B,UE/BO,6CF+BmBkF,EAAoB1D,OAClDE,EAAAA,cAAC2S,EAAsB,CACrBnE,cAAeA,EACfhL,oBAAqBA,EACrBhB,SAAU4H,KAIdpK,EAAAA,cAAA,OAAK1B,UEzCmB,uDFyCiBsC,GAAG,2BAA2BwF,SAAU,GAC/EpG,EAAAA,cAAC4S,EAAyB,CAACpE,cAAeiE,EAAuBjP,oBAAqBA,KAGxFxD,EAAAA,cAAA,OAAK1B,UE/CM,2CFgDT0B,EAAAA,cAAC6S,GAAqB,CACpB/C,YAAaA,EACbtB,cAAeiE,EACfjP,oBAAqBA,EACrB4B,qBAAsB+E,EAAexE,gBAK/C,EGhCA,GAjB+C,SAAH9F,GAAwC,IAAlCiE,EAAKjE,EAALiE,MAAON,EAAmB3D,EAAnB2D,oBACvD,OACExD,EAAAA,cAAA,UACE1B,UCZc,yCDadwB,MAAOgE,EACP/C,IAAKyC,EAAoBsP,WACzBC,QAAQ,+FAGd,EEUA,GAnBoD,SAAHlT,GAAwC,IAAlCiE,EAAKjE,EAALiE,MAAON,EAAmB3D,EAAnB2D,oBAC5D,OACExD,EAAAA,cAAA,WAAS1B,UCVqB,8DDW5B0B,EAAAA,cAAA,UACE1B,UCbY,+CDcZwB,MAAOgE,EACP/C,IAAKyC,EAAoBsP,YAAgC,oBAAX/H,OAAyBA,OAAOmH,SAAShL,OAAS,IAChG6L,QAAQ,gGAIhB,sCEXWC,GAAW,uCC6JtB,GA1J2C,SAAHnT,GAAqBA,EAAfoT,gBAAuB,IAC7DvS,GAAewS,EAAAA,GAAAA,IAAe,cAiBpCvL,GAA0DC,EAAAA,EAAAA,UAAS,MAA5DuL,EAAqBxL,EAAA,GAAEyL,EAAwBzL,EAAA,IACtDc,EAAAA,EAAAA,YAAU,WACR,IAAK0K,GACCzS,EAAa2S,gBAAkB3S,EAAa2S,eAAeC,MAAO,CACpE,IAAIC,EAAgB7S,EAAa2S,eAAeC,MAAM,GACtDF,EAAyBG,EAC3B,CAEJ,GAAG,CAACJ,IAEJ,IAAArL,GAAwBF,EAAAA,EAAAA,UAAS,MAA1B4L,EAAI1L,EAAA,GAAE2L,EAAO3L,EAAA,GACpBE,GAA4BJ,EAAAA,EAAAA,UAAS,MAA9B8L,EAAQ1L,EAAA,GAAE2L,EAAO3L,EAAA,IAExBS,EAAAA,EAAAA,YAAU,WACR,GAAIiL,EAAU,CACZ,IAAME,EA4CV,SAA0BC,GACxB,IAAMzP,EAAQ,GACdyP,EAAYjN,SAAQ,SAAAkN,GAClBA,EAAY1P,MAAMjG,KAAI,SAAAoF,GACpBa,EAAMzF,KAAK4E,EACb,GACF,IAEA,IAAMwQ,EAAc3P,EAAMnE,QAAO,SAAC+T,EAAKxa,GAAK,OAAKA,IAAU4K,EAAM6P,WAAU,SAAAC,GAAI,OAAIA,EAAKtT,KAAOoT,EAAIpT,EAAE,GAAC,IAChGuT,EAAqB,GAa3B,OAZAJ,EAAYnN,SAAQ,SAAArD,GAClB,IAAM6Q,EAAmB,GACzBP,EAAYjN,SAAQ,SAAAkN,GAClBA,EAAY1P,MAAMwC,SAAQ,SAAAyN,GACpB9Q,EAAK/Q,MAAQ6hB,EAAQ7hB,OAAQ8hB,EAAAA,EAAAA,IAAWR,EAAYS,MAAOT,EAAYU,OACzEJ,EAAiBzV,KAAKmV,GACtBK,EAAmBxV,KAAK,CAAE4E,KAAMA,EAAMkR,QAASL,IAEnD,GACF,GACF,IAEOD,EAAmBlU,QAAO,SAAC+T,EAAKxa,GACrC,OAAOA,IAAU2a,EAAmBF,WAAU,SAAAC,GAAI,OAAIA,EAAK3Q,OAASyQ,EAAIzQ,IAAI,GAC9E,GACF,CArEuBmR,CAAiBhB,EAASiB,iBAC7ClB,EAAQG,EACV,CACF,GAAG,CAACF,IAEJ,IAAQkB,GAASC,EAAAA,GAAAA,GAAqB,CACpCC,SAAS,EACT3N,MAAM,8DAEwBpH,GAAOgV,OAAM,+eA0B3CC,MAAOjV,GAAOkV,cA9BRL,KAkER,OAjCIA,GACEA,GAAQlB,GACVC,EAAQiB,GAgCV5U,EAAAA,cAAA,OAAK1B,UDrHc,yCCsHjB0B,EAAAA,cAAA,MAAI1B,UD5GS,qCC4GiBoC,EAAawU,2BAA2BC,yBACrE3B,GACCA,EAAKrV,KAAI,SAAAoF,GACP,OACEvD,EAAAA,cAAA,OAAK1B,UDxHC,mCCwHuB3J,IAAK4O,EAAKA,KAAK3C,IAC1CZ,EAAAA,cAAA,MAAI1B,UAAWiF,EAAKkR,QAAQhiB,OAAS,EDpH1B,0CADH,wCCsHNuN,EAAAA,cAAA,OAAKe,IAAKwC,EAAKA,KAAKH,UAAUpC,IAAKK,IAAKkC,EAAKA,KAAKH,UAAU/B,IAAK/C,UAAW2C,MAG9EjB,EAAAA,cAAA,MAAI1B,UD5HO,2CC6HRiF,EAAKkR,QAAQtW,KAAI,SAAAsW,GAChB,OACEzU,EAAAA,cAAA,MAAI1B,UDvHM,+CCuH8B3J,IAAK8f,EAAQ7T,IACnDZ,EAAAA,cAAA,KACEwB,KACE,IAAI2R,EAAsB7S,KAC1B,IACAmU,EAAQ3U,MAAM5B,QAAQ,IAAIkX,OAAO,IAAK,KAAM,KAC5C,IACAX,EAAQ7T,GAEVtC,UDtIC,2CCwID0B,EAAAA,cAAA,OAAK1B,UDrIA,+CCsIH0B,EAAAA,cAAA,OACEe,IAAK0T,EAAQrR,UAAUpC,IACvBK,IAAKoT,EAAQrR,UAAU/B,IACvB/C,UAAW2C,GACX,cAAY,UAGhBjB,EAAAA,cAAA,OACEsB,wBAAyB,CACvBtC,OAAQuC,IAAakT,EAAQY,sBAMzC,KAIR,IAGR,EClKW,GAAW,sCAKXC,GAAY,kDC0CvB,GA7BwC,SAAHzV,GAW9B,IAVLe,EAAEf,EAAFe,GACApO,EAAIqN,EAAJrN,KACA2P,EAAQtC,EAARsC,SAAQC,EAAAvC,EACRvB,UAAAA,OAAS,IAAA8D,EAAG,GAAEA,EAAAC,EAAAxC,EACdyC,YAAAA,OAAW,IAAAD,EAAG,GAAEA,EAChB9J,EAAKsH,EAALtH,MACAgK,EAAQ1C,EAAR2C,SACAC,EAAQ5C,EAAR4C,SACAC,EAAS7C,EAAT6C,UACAC,EAAO9C,EAAP+C,QAEA,OACE5C,EAAAA,cAAA,WAAAvM,OAAAyE,OAAA,CACE0I,GAAIA,EACJpO,KAAMA,EACN8P,YAAaA,EACbH,SAAUA,EACV7D,UAAWmD,EAAAA,GAAwB,KAAOiB,EAAYjB,EAAAA,GAA4B,IAAM,IAAMnD,EAC9FkE,SAAU,SAAAU,GAAK,OAAIX,GAAYA,EAASW,EAAMC,OAAO5K,MAAM,EAC3DA,MAAOA,GACHkK,EAASjQ,EAAM,CAAE2P,SAAAA,IAAW,CAChCS,QAAS,SAAAM,GACPP,GAAWA,EAAQO,EAAMC,OAAOvC,GAClC,IAGN,ECMA,GApC2C,SAAHf,GAYjC,IAXLe,EAAEf,EAAFe,GACApO,EAAIqN,EAAJrN,KACA2P,EAAQtC,EAARsC,SAAQC,EAAAvC,EACRvB,UAAAA,OAAS,IAAA8D,EAAG,GAAEA,EACd7J,EAAKsH,EAALtH,MACAuL,EAAKjE,EAALiE,MACAyR,EAAO1V,EAAP0V,QACAhT,EAAQ1C,EAAR2C,SACAC,EAAQ5C,EAAR4C,SACAC,EAAS7C,EAAT6C,UACAC,EAAO9C,EAAP+C,QAEA,OACE5C,EAAAA,cAAA,SAAO1B,UAAWmD,EAAAA,IAA4BiB,EAAY,IAAMjB,EAAAA,GAA4B,KACzFqC,EACD9D,EAAAA,cAAA,QAAAvM,OAAAyE,OAAA,CACEkO,SAAU,EACV9T,KAAK,QACLsO,GAAIA,EACJpO,KAAMA,EACN2P,SAAUA,EACV7D,UAAWA,EACXkE,SAAU,kBAAMD,EAAShK,EAAM,EAC/BA,MAAOA,EACPgd,QAASA,GACL9S,EAASjQ,EAAM,CAAE2P,SAAAA,IAAW,CAChCS,QAAS,SAAAM,GACPP,GAAWA,EAAQO,EAAMC,OAAOvC,GAClC,KAEFZ,EAAAA,cAAA,QAAMoG,SAAU,EAAG9H,UAAWmD,EAAAA,KAGpC,ECDA,GAlCwC,SAAH5B,GAW9B,IAVLe,EAAEf,EAAFe,GACApO,EAAIqN,EAAJrN,KACA2P,EAAQtC,EAARsC,SAAQC,EAAAvC,EACRvB,UAAAA,OAAS,IAAA8D,EAAG,GAAEA,EACd0B,EAAKjE,EAALiE,MACAyR,EAAO1V,EAAP0V,QACAhT,EAAQ1C,EAAR2C,SACAC,EAAQ5C,EAAR4C,SACAC,EAAS7C,EAAT6C,UACAC,EAAO9C,EAAP+C,QAEA,OACE5C,EAAAA,cAAA,SAAOzB,QAASqC,EAAItC,UAAcmD,EAAAA,GAAqB,KAAIiB,EAAY,IAAMjB,EAAAA,GAA4B,KACtGqC,EACD9D,EAAAA,cAAA,QAAAvM,OAAAyE,OAAA,CACE5F,KAAK,WACLsO,GAAIA,EACJpO,KAAMA,EACN2P,SAAUA,EACV7D,UAAWA,EACXkE,SAAU,kBAAMD,GAAUgT,EAAQ,EAClChd,MAAOuL,EACPyR,QAASA,GACL9S,EAASjQ,EAAM,CAAE2P,SAAAA,IAAW,CAChCS,QAAS,SAAAM,GACPP,GAAWA,EAAQO,EAAMC,OAAOvC,GAClC,KAEFZ,EAAAA,cAAA,QAAM1B,UAAWmD,EAAAA,KAGvB,cCqBA,GA1CsC,SAAH5B,GAY5B,IAXLe,EAAEf,EAAFe,GACApO,EAAIqN,EAAJrN,KACA2P,EAAQtC,EAARsC,SAAQC,EAAAvC,EACRvB,UAAAA,OAAS,IAAA8D,EAAG,GAAEA,EACd7J,EAAKsH,EAALtH,MACAid,EAAO3V,EAAP2V,QACAjT,EAAQ1C,EAAR2C,SACAC,EAAQ5C,EAAR4C,SACAC,EAAS7C,EAAT6C,UACAC,EAAO9C,EAAP+C,QACAC,EAAYhD,EAAZgD,aAEA,OACE7C,EAAAA,cAAA,OAAK1B,UAAWmD,EAAAA,GAAsB,KAAOiB,EAAYjB,EAAAA,GAA4B,IAAM,IAAMnD,GAC/F0B,EAAAA,cAAA,SAAAvM,OAAAyE,OAAA,CACE0I,GAAIA,EACJpO,KAAMA,EACN2P,SAAUA,EACVc,aAAcJ,EAAerQ,OAAOwQ,EACpCR,SAAU,SAAAU,GAAK,OAAIX,GAAYA,EAASW,EAAMC,OAAO5K,MAAM,EAC3DA,MAAOA,GACHkK,EAASjQ,EAAM,CAAE2P,SAAAA,IAAW,CAChCS,QAAS,SAAAM,GACPP,GAAWA,EAAQO,EAAMC,OAAOvC,GAClC,IAEC4U,EAAQrX,KAAI,SAAAsX,GAAM,OACjBzV,EAAAA,cAAA,UAAQzH,MAAOkd,EAAQ9gB,IAAK8gB,GACzBA,EACM,KAGbzV,EAAAA,cAACc,EAAAA,EAAQ,CACPC,IAAK2U,GAAAA,EACLpX,UAAWmD,EAAAA,GACXP,gBAAiB,SAAAC,GAAG,OAAIA,EAAIC,aAAa,cAAe,OAAO,IAIvE,ECzBA,GA5ByC,SAAHvB,GAU/B,IATLe,EAAEf,EAAFe,GAEApO,GADIqN,EAAJvN,KACIuN,EAAJrN,MACA2P,EAAQtC,EAARsC,SAAQC,EAAAvC,EACRvB,UAAAA,OAAS,IAAA8D,EAAG,GAAEA,EAAAC,EAAAxC,EACdyC,YAAAA,OAAW,IAAAD,EAAG,GAAEA,EAChBE,EAAQ1C,EAAR2C,SACAC,EAAQ5C,EAAR4C,SACAE,EAAO9C,EAAP+C,QAEA,OACE5C,EAAAA,cAAA,QAAAvM,OAAAyE,OAAA,CACE0I,GAAIA,GACA6B,EAASjQ,EAAM,CAAE2P,SAAAA,IAAW,CAChC7P,KAAK,OACLE,KAAMA,EACN8P,YAAaA,EACbH,SAAUA,EACVK,SAAU,SAAAU,GAAK,OAAIX,EAASW,EAAMC,OAAOwS,MAAM,EAC/CrX,UAAWA,EACXsE,QAAS,SAAAM,GACPP,GAAWA,EAAQO,EAAMC,OAAOvC,GAClC,IAGN,cClBA,GAXyC,SAAHf,GAA8C,IAAxC+V,EAAM/V,EAAN+V,OAAQpjB,EAAIqN,EAAJrN,KAAMF,EAAIuN,EAAJvN,KAAMsO,EAAEf,EAAFe,GAAIhC,EAAQiB,EAARjB,SAClE,OAAIgX,GAAUA,EAAOpjB,IAASojB,EAAOpjB,GAAMF,OAASA,EAEhD0N,EAAAA,cAAA,OAAK1B,UAAWmD,EAAAA,GAAwBb,GAAIA,GAAM,KAAM,mBAAkBpO,GAAQ,MAC/EoM,GAIAoB,EAAAA,cAAAA,EAAAA,SAAA,KACT,qCClBa6V,GAAW,eAAAhW,GAAAiW,EAAAA,GAAAA,GAAAC,KAAAA,MAAG,SAAAC,EAAOpS,GAAU,IAAAqS,EAAAC,EAAAC,EAAA,OAAAJ,KAAAA,MAAA,SAAAK,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAGb,OAFvBL,EAAU,CAAEM,OAAQ,mBAAoB,4BAA6BxW,GAAOyW,8BAC5EN,EAAW,IAAIO,UACZC,OAAO,OAAQ9S,GAAKwS,EAAAE,KAAA,EAENK,MAAM5W,GAAO6W,2CAA4C,CAC9EC,OAAQ,OACRZ,QAAAA,EACAra,KAAMsa,IACN,OAJY,IAARC,EAAQC,EAAAU,MAMAC,GAAG,CAADX,EAAAE,KAAA,cACR,IAAIU,MAAMb,EAASc,YAAW,cAAAb,EAAAc,OAAA,SAE/Bf,EAASgB,QAAM,wBAAAf,EAAAgB,OAAA,GAAApB,EAAA,KACvB,gBAfuBqB,GAAA,OAAAxX,EAAAvH,MAAA,KAAAzF,UAAA,KAiBXykB,GAAkB,SAACC,GAC9B,IAAMC,EAAY,CAChBC,GAAI,GACJC,GAAI,GACJC,IAAK,IAqBP,OAlBAJ,EAAU3Q,SAAQ,SAAAgR,GAChB,OAAQA,EAASC,UACf,IAAK,YACHL,EAAUC,IAAMG,EAASxJ,MAAQ,IACjC,MACF,IAAK,KACHoJ,EAAUE,IAAME,EAASxJ,MAAQ,IACjC,MACF,IAAK,MACHoJ,EAAUG,KAAOC,EAASxJ,MAAQ,IAGxC,IAEAoJ,EAAUC,GAAKD,EAAUC,GAAGK,MAAM,GAAI,GACtCN,EAAUE,GAAKF,EAAUE,GAAGI,MAAM,GAAI,GACtCN,EAAUG,IAAMH,EAAUG,IAAIG,MAAM,GAAI,GAEjCN,CACT,EAEaO,GAAS,eAAAC,GAAAlC,EAAAA,GAAAA,GAAAC,KAAAA,MAAG,SAAAkC,EACvBlT,EACAwS,EACAW,EACAxI,EACAiG,EACAwC,GAAe,IAAAC,EAAAnC,EAAAoC,EAAAC,EAAAC,EAAAd,EAAAC,EAAAC,EAAAxB,EAAA,OAAAJ,KAAAA,MAAA,SAAAyC,GAAA,cAAAA,EAAAnC,KAAAmC,EAAAlC,MAAA,OAQkF,OAN3F8B,EAAmB1I,EAAQxR,QAAQ,MAAO,QAC1C+X,EAAU,CACdM,OAAQ,mBACR,eAAgB,mBAChB,4BAA6BxW,GAAOyW,6BAEhC6B,EAAe1C,EAAMljB,OAAS,EAAIgmB,QAAQ5f,IAAI8c,EAAMxX,IAAI0X,KAAgB4C,QAAQC,QAAQ,IAAGF,EAAAlC,KAAA,EACrE+B,EAAY,OAErB,OAFbC,EAAaE,EAAA1B,KAAAyB,EAEKjB,GAAgBC,GAAhCE,EAAEc,EAAFd,GAAIC,EAAEa,EAAFb,GAAIC,EAAGY,EAAHZ,IAAGa,EAAAlC,KAAA,EAEIK,MAAM5W,GAAO4Y,+BAAgC,CAClE9B,OAAQ,OACRZ,QAAAA,EACAra,KAAMgd,KAAKC,UAAU,CACnBC,iBAAkB,QAClBC,oBAAqB,CACnBhU,KAAAA,EACA0S,GAAAA,EACAU,QAAAA,EACAT,GAAAA,EACAC,IAAAA,EACAqB,UAAW,mCACXtJ,QAAS,CACPwI,QAAAA,EACAe,YAAab,EACbc,YAAaZ,QAInB,OAnBY,IAARnC,EAAQqC,EAAA1B,MAqBAC,GAAG,CAADyB,EAAAlC,KAAA,eACR,IAAIU,MAAMb,EAASc,YAAW,eAAAuB,EAAAtB,OAAA,SAE/Bf,GAAQ,yBAAAqC,EAAApB,OAAA,GAAAa,EAAA,KAChB,gBA5CqBkB,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GAAA,OAAAxB,EAAA1f,MAAA,KAAAzF,UAAA,Kf/CX4mB,GAAqB,aACrBC,GAAgB,QAChBC,GAAe,OACfC,GAAkB,UAClBC,GAAqB,aACrBC,GAAmB,WACnBC,GAAe,OACfC,GAAmB,WACnBC,GAAe,OACfC,GAAoB,YACpBC,GAAe,OACfC,GAAe,OACfC,GAAwB,gBACxBC,GAAmB,CAACb,GAAoBC,GAAeC,GAAcC,GAAiBC,GAAoBC,GAAkBC,GAAcC,GAAkBC,GAAcC,GAAmBC,GAAcC,GAAcC,KACtM9f,GAAK,CAAC,GAAMkf,IAAsB,CAACS,IAAoB3f,GAAGmf,IAAiB,GAAInf,GAAGof,IAAgB,GAAIpf,GAAGqf,IAAmB,cAAerf,GAAGsf,IAAsB,GAAItf,GAAGuf,IAAoB,cAAevf,GAAGwf,IAAgB,cAAexf,GAAGyf,IAAoB,CAACE,GAAmBD,IAAe1f,GAAG0f,IAAgB,CAACD,IAAmBzf,GAAG2f,IAAqB,cAAe3f,GAAG4f,IAAgB,CAACV,GAAoBE,GAAcM,GAAcC,GAAmBN,GAAiBF,GAAeW,IAAwB9f,GAAG6f,IAAgB,GAAI7f,GAAG8f,IAAyB,IAExjB7f,GAAK,CAAC,GAAMif,IAAsB,CAAC,WAAY,eAAgBjf,GAAGkf,IAAiB,CAAC,QAASlf,GAAGmf,IAAgB,CAAC,WAAY,YAAa,QAASnf,GAAGof,IAAmB,CAAC,QAAS,WAAY,SAAUpf,GAAGqf,IAAsB,CAAC,QAASrf,GAAGsf,IAAoB,CAAC,OAAQ,WAAY,QAAStf,GAAGuf,IAAgB,CAAC,MAAO,WAAY,QAASvf,GAAGwf,IAAoB,CAAC,YAAaxf,GAAGyf,IAAgB,CAAC,QAAS,YAAazf,GAAG0f,IAAqB,CAAC,WAAY,SAAU1f,GAAG2f,IAAgB,CAAC,YAAa3f,GAAG4f,IAAgB,CAAC,QAAS,SAAU5f,GAAG6f,IAAyB,GgBV5kB,SAASE,GAAUC,GACxB,OAAOA,EAAKloB,OAASsnB,EACvB,CACO,SAASa,GAAOD,GACrB,OAAOA,EAAKloB,OAAS8nB,EACvB,CACO,SAASM,GAAOF,GACrB,OAAOA,EAAKloB,OAAS6nB,EACvB,CACO,SAASQ,GAAYH,GAC1B,OAAOA,EAAKloB,OAAS4nB,EACvB,CACO,SAASU,GAAOJ,GACrB,OAAOA,EAAKloB,OAAS2nB,EACvB,CACO,SAASY,GAAWL,GACzB,OAAOA,EAAKloB,OAAS0nB,EACvB,CACO,SAASc,GAAaN,GAC3B,OAAOA,EAAKloB,OAASmnB,EACvB,CACO,SAASsB,GAAQP,GACtB,OAAOA,EAAKloB,OAASonB,EACvB,CACO,SAASsB,GAAOR,GACrB,OAAOA,EAAKloB,OAASqnB,EACvB,CACO,SAASsB,GAAOT,GACrB,OAAOA,EAAKloB,OAASynB,EACvB,CACO,SAASmB,GAAWV,GACzB,OAAOA,EAAKloB,OAASwnB,EACvB,CACO,SAASqB,GAAaX,GAC3B,OAAOA,EAAKloB,OAASunB,EACvB,CACO,SAASuB,GAAgBZ,GAC9B,OAAOA,EAAKloB,OAAS+nB,EACvB,CACA,SAASgB,GAASC,GAChB,OAAOC,QAAuB,iBAARD,GAAoBA,EAC5C,CAIO,SAASE,GAAOF,GACrB,OAAOC,QAAQF,GAASC,IAAQ,SAAUA,GAA2B,iBAAbA,EAAIhpB,OAJnCiG,EAImE+iB,EAAIhpB,KAHzFgoB,GAAiB9O,SAASjT,KAD5B,IAAoBA,CAK3B,CACO,SAASkjB,GAAiBH,GAC/B,OAAOC,QAAQF,GAASC,IAAQ,UAAWA,GAAOI,GAAWJ,EAAI/iB,OACnE,CACO,SAASmjB,GAAWJ,GACzB,OAAOC,QAAQF,GAASC,IAAQ,WAAYA,GAAO,aAAcA,GAAsB,SAAfA,EAAIK,OAC9E,CCzDO,SAASC,GAAQC,GACtB,IAAI5gB,EAAS,GAEb,OADA6gB,GAASD,EAAO5gB,GACTA,CACT,CAIA,SAAS6gB,GAASD,EAAO5gB,GACvB,IAAK,IAAIvG,EAAI,EAAGA,EAAImnB,EAAMppB,OAAQiC,IAAK,CACrC,IAAI6D,EAAQsjB,EAAMnnB,GACdoQ,MAAMiX,QAAQxjB,GAChBujB,GAASvjB,EAAO0C,GAEhBA,EAAO0D,KAAKpG,EAEhB,CACF,CCpBA,IACMyjB,GADFC,IACED,GAAiB,SAAuB9mB,EAAGJ,GAQ7C,OAPAknB,GAAiBvoB,OAAOyoB,gBAAkB,CACxCC,UAAW,cACArX,OAAS,SAAU5P,EAAGJ,GACjCI,EAAEinB,UAAYrnB,CAChB,GAAK,SAAUI,EAAGJ,GAChB,IAAK,IAAIY,KAAKZ,EAAOrB,OAAOf,UAAU0F,eAAeC,KAAKvD,EAAGY,KAAIR,EAAEQ,GAAKZ,EAAEY,GAC5E,EACOsmB,GAAe9mB,EAAGJ,EAC3B,EACO,SAAUI,EAAGJ,GAElB,SAASsnB,IACPnkB,KAAKokB,YAAcnnB,CACrB,CAHA8mB,GAAe9mB,EAAGJ,GAIlBI,EAAExC,UAAkB,OAANoC,EAAarB,OAAO6oB,OAAOxnB,IAAMsnB,EAAG1pB,UAAYoC,EAAEpC,UAAW,IAAI0pB,EACjF,GAEEG,GAAgD,WAClD,IAAK,IAAIpkB,EAAI,EAAGzD,EAAI,EAAG8nB,EAAK3pB,UAAUJ,OAAQiC,EAAI8nB,EAAI9nB,IAAKyD,GAAKtF,UAAU6B,GAAGjC,OACxE,IAAImD,EAAIkP,MAAM3M,GAAI7C,EAAI,EAA3B,IAA8BZ,EAAI,EAAGA,EAAI8nB,EAAI9nB,IAAK,IAAK,IAAIyB,EAAItD,UAAU6B,GAAI+nB,EAAI,EAAGC,EAAKvmB,EAAE1D,OAAQgqB,EAAIC,EAAID,IAAKnnB,IAAKM,EAAEN,GAAKa,EAAEsmB,GAC9H,OAAO7mB,CACT,EAGI+mB,GAA2B,SAAUC,GAEvC,SAASD,EAAYE,EAASrC,GAC5B,IAAIsC,EAAQF,EAAOvkB,KAAKJ,KAAM4kB,IAAY5kB,KAG1C,OAFA6kB,EAAMtC,KAAOA,EACb/mB,OAAOyoB,eAAeY,EAAOH,EAAYjqB,WAClCoqB,CACT,CACA,OAPAb,GAAUU,EAAaC,GAOhBD,CACT,CAT+B,CAS7B3F,OAES+F,GAAa,SAAoBC,EAAOC,GACjD,MAAO,CACLC,UAAWF,EACX1kB,MAAO,SAAe6kB,GACpB,OAAOF,EAAUE,EACnB,EAEJ,EACO,SAASC,GAAcC,EAAS7C,EAAM7lB,EAAK2oB,EAAWC,GAC3D,IAAI3e,EF7CC,SAAqB4b,GAC1B,MAAO,aAAcA,CACvB,CE2CiBgD,CAAYhD,GAAQoB,GAAQpB,EAAK5b,SAAST,KAAI,SAAUsf,EAAWjkB,GAChF,OAAO4jB,GAAcC,EAASI,EAAW,KAAOjkB,EAAO+iB,GAAe,CAAC/B,GAAO8C,GAAYC,EAC5F,IAAGtd,QAAO,SAAUjK,GAClB,QAASA,CACX,UAAMgN,EACF0a,EAAoBH,EAAYhT,MAAK,SAAU0S,GACjD,OAAOA,EAAUC,UAAU1C,EAC7B,IACA,GAAIkD,EACF,OAAOA,EAAkBplB,MAAM,CAC7B+kB,QAASA,EACT7C,KAAMA,EACN5b,SAAUA,EACVjK,IAAKA,EACL2oB,UAAWA,IAGf,MAAM,IAAIX,GAAY,+CAAiDnC,EAAKloB,KAAO,gDAAkDkoB,EACvI,CACO,SAASlnB,GAAO+pB,EAASM,EAAsBJ,GACpD,IAAKI,EACH,OAAO,KAET,IAAInD,EAAOiB,GAAiBkC,IAAyBjC,GAAWiC,EAAqBplB,OAASolB,EAAqBplB,MAAMyS,SAAW0Q,GAAWiC,GAAwBA,EAAqB3S,SAAWwQ,GAAOmC,GAAwBA,OAAuB3a,EAC7P,IAAKwX,EACH,MAAM,IAAIxD,MAAM,0FAGlB,OADaoG,GAAcC,EAAS7C,EAAM,MAAO,GAAI+C,EAEvD,CC3EA,IAAIvlB,GAAoC,WAQtC,OAPAA,GAAWvE,OAAOyE,QAAU,SAAUrC,GACpC,IAAK,IAAIsC,EAAGzD,EAAI,EAAGe,EAAI5C,UAAUJ,OAAQiC,EAAIe,EAAGf,IAE9C,IAAK,IAAIgB,KADTyC,EAAItF,UAAU6B,GACOjB,OAAOf,UAAU0F,eAAeC,KAAKF,EAAGzC,KAAIG,EAAEH,GAAKyC,EAAEzC,IAE5E,OAAOG,CACT,EACOmC,GAASM,MAAML,KAAMpF,UAC9B,EACI,GAAgD,WAClD,IAAK,IAAIsF,EAAI,EAAGzD,EAAI,EAAG8nB,EAAK3pB,UAAUJ,OAAQiC,EAAI8nB,EAAI9nB,IAAKyD,GAAKtF,UAAU6B,GAAGjC,OACxE,IAAImD,EAAIkP,MAAM3M,GAAI7C,EAAI,EAA3B,IAA8BZ,EAAI,EAAGA,EAAI8nB,EAAI9nB,IAAK,IAAK,IAAIyB,EAAItD,UAAU6B,GAAI+nB,EAAI,EAAGC,EAAKvmB,EAAE1D,OAAQgqB,EAAIC,EAAID,IAAKnnB,IAAKM,EAAEN,GAAKa,EAAEsmB,GAC9H,OAAO7mB,CACT,EA0CO,SAASgoB,GAAmBrjB,GACjC,IAAIsjB,EAAkBtjB,EAAGsjB,gBACzB,OAAOd,GAAWtC,IAAQ,SAAUqD,GAClC,IAAIT,EAAUS,EAAQT,QACpB1oB,EAAMmpB,EAAQnpB,IAEhB,OADSmpB,EAAQtD,KACJuD,OAAS,IAAIzZ,QAAO,SAAU1F,EAAUof,GACnD,GAAKpf,EAAL,CAGA,IAAIqf,EAAqBJ,EAAgBtT,MAAK,SAAU2T,GACtD,OAAOA,EAAKhB,UAAUc,EACxB,IACA,OAAIC,EACKA,EAAmB3lB,MAAM,CAC9B+kB,QAASA,EACT1oB,IAAKA,EACLqpB,KAAMA,EACNpf,SAAUA,IAGPye,EAAQc,WA5Dd,SAAuBH,GAC5B,OAAQA,GACN,IAAK,WACH,MAAO,KACT,IAAK,YACH,MAAO,IACT,IAAK,gBACH,MAAO,IACT,IAAK,YACH,MAAO,OACT,QACE,OAAOA,EAEb,CA+CgCI,CAAcJ,GAAO,CAC7CrpB,IAAKA,GACJiK,EAdH,CAeF,GAjDG,SAAyBrE,GAC9B,IAAIigB,EAAOjgB,EAAGigB,KACZ7lB,EAAM4F,EAAG5F,IACT6F,EAAKD,EAAG8iB,QACRc,EAAa3jB,EAAG2jB,WAChBE,EAAa7jB,EAAG6jB,WAChBC,EAAiB9jB,EAAG8jB,eAClBla,EAAQoW,EAAKjiB,MAAMgmB,MAAM,MAC7B,OAAqB,IAAjBna,EAAM3R,OACD4rB,EAAW7D,EAAKjiB,MAAO5D,GAEzB2pB,EAAela,EAAM0T,MAAM,GAAGxT,QAAO,SAAUka,EAAKjb,EAAM/J,GAC/D,OAAOglB,EAAIjqB,OAAO,CAAC4pB,EAAW,KAAM,CAClCxpB,IAAKA,EAAM,OAAS6E,IAClB6kB,EAAW9a,EAAM5O,EAAM,SAAW6E,IACxC,GAAG,CAAC6kB,EAAWja,EAAM,GAAIzP,EAAM,iBAAkBA,EACnD,CAiCO8pB,CAAgBX,GACrB,GACF,CACO,IAAIY,GAAyB,SAAgCnkB,GAClE,IAAIokB,EAAOpkB,EAAGokB,KACVC,EAAa,CAAC,EAMlB,OALAD,EAAK/X,SAAQ,SAAUiY,GACjB,CAAC,SAAU,QAAS,OAAOrT,SAASqT,EAAMje,MAC5Cge,EAAWC,EAAMje,IAAMie,EAAMtmB,MAEjC,IACOqmB,CACT,6BC5FI,GAAgD,WAClD,IAAK,IAAIzmB,EAAI,EAAGzD,EAAI,EAAG8nB,EAAK3pB,UAAUJ,OAAQiC,EAAI8nB,EAAI9nB,IAAKyD,GAAKtF,UAAU6B,GAAGjC,OACxE,IAAImD,EAAIkP,MAAM3M,GAAI7C,EAAI,EAA3B,IAA8BZ,EAAI,EAAGA,EAAI8nB,EAAI9nB,IAAK,IAAK,IAAIyB,EAAItD,UAAU6B,GAAI+nB,EAAI,EAAGC,EAAKvmB,EAAE1D,OAAQgqB,EAAIC,EAAID,IAAKnnB,IAAKM,EAAEN,GAAKa,EAAEsmB,GAC9H,OAAO7mB,CACT,EAOIkpB,GAAe,SAAsBC,EAAStgB,GAGhD,IADA,IAAIG,EAAW,GAGXE,EAAK,EAETA,EAAKjM,UAAUJ,OAEfqM,IAEEF,EAASE,EAAK,GAAKjM,UAAUiM,GAK/B,OAHIL,UACKA,EAAM9J,IAER,gBAAY,EAAQ,GAAe,CAACoqB,EAAStgB,GAAQG,GAC9D,EACWogB,GAAiB,CAC1Bb,WAAYW,GACZR,eAAgB,SAAwB1f,GACtC,OAAOkgB,GAAa,KAAM,KAAMlgB,EAClC,EACAyf,WAAY,SAAoB/jB,GAC9B,OAAOA,CACT,GAEK,SAAS,GAChBqjB,EACAsB,GACE,IAAIC,EAAqBD,aAA2C,EAASA,EAASC,mBAClFC,EAAqBF,aAA2C,EAASA,EAASE,mBAClFC,EAAcH,aAA2C,EAASA,EAASG,YAC3EC,GAAeJ,aAA2C,EAASA,EAASK,mBAAqBL,aAA2C,EAASA,EAASI,cAAgB,GAC9KpkB,EDgDC,SAAgB0iB,EAAsBnI,GAC3C,IAAI+J,EAAkB/J,EAAQ+J,iBAAmBb,GACjD,OAAO,GAAclJ,EAAQ6H,QAASM,EAAsB,GAAenI,EAAQ8J,iBAAmB,GAAI,CAACvC,GAAWrC,IAAQ,SAAUngB,GACtI,IAAI+jB,EAAiB/jB,EAAG8iB,QAAQiB,eAC9B3pB,EAAM4F,EAAG5F,IAEX,OAAO2pB,EADM/jB,EAAGqE,SACgBjK,EAClC,IAAIooB,GAAWpC,IAAa,SAAUpgB,GAIpC,OAAO4jB,EAHU5jB,EAAG8iB,QAAQc,YAGV,IAAK,CACrBxpB,IAHM4F,EAAG5F,KACE4F,EAAGqE,SAIlB,IAAIme,GAAWnC,IAAQ,SAAUrgB,GAC/B,IAAI4jB,EAAa5jB,EAAG8iB,QAAQc,WAC1B3D,EAAOjgB,EAAGigB,KACV7lB,EAAM4F,EAAG5F,IACTiK,EAAWrE,EAAGqE,SAChB,OAAOuf,EAA0B,aAAf3D,EAAK9J,MAAuB,KAAO,KAAM,CACzD/b,IAAKA,GACJiK,EACL,IAAIme,GAAWlC,IAAY,SAAUtgB,GAInC,OAAO4jB,EAHU5jB,EAAG8iB,QAAQc,YAGV,KAAM,CACtBxpB,IAHM4F,EAAG5F,KACE4F,EAAGqE,SAIlB,IAAIme,GAAWjC,IAAc,SAAUvgB,GACrC,IAAI4jB,EAAa5jB,EAAG8iB,QAAQc,WAC1BxpB,EAAM4F,EAAG5F,IACT6lB,EAAOjgB,EAAGigB,KACV5b,EAAWrE,EAAGqE,SACZ4gB,EAA0BhF,EAAKiF,YAAc,GAAe7gB,GAAY,GAAI,CAACuf,EAAW,SAAU,CACpGxpB,IAAK,UACJ6lB,EAAKiF,eAAiB7gB,EACzB,OAAOuf,EAAW,aAAc,CAC9BxpB,IAAKA,GACJ6qB,EACL,IAAIzC,GAAW/B,IAAQ,SAAUzgB,GAC/B,IAAIC,EAAKD,EAAG8iB,QACVc,EAAa3jB,EAAG2jB,WAChBE,EAAa7jB,EAAG6jB,WAChB1pB,EAAM4F,EAAG5F,IACT6lB,EAAOjgB,EAAGigB,KACZ,OAAO2D,EAAW,MAAO,CACvBxpB,IAAKA,EACL,gBAAiB6lB,EAAKkF,UACrBvB,EAAW,OAAQ,KAAME,EAAW7D,EAAKtf,OAC9C,IAAI6hB,GAAW9B,IAAQ,SAAU1gB,GAC/B,IAAI4jB,EAAa5jB,EAAG8iB,QAAQc,WAC1BxpB,EAAM4F,EAAG5F,IACTiK,EAAWrE,EAAGqE,SACd4b,EAAOjgB,EAAGigB,KACRmE,EAAOnE,EAAKmE,KAAOY,EAAgB,CACrC/E,KAAMA,EACNmE,KAAMnE,EAAKmE,OACR,CAAC,EACN,OAAOR,EAAW,IAAKnmB,GAASA,GAAS,CAAC,EAAG2mB,GAAQ,CAAC,GAAI,CACxDhqB,IAAKA,EACL6M,KAAMgZ,EAAKxZ,MACTpC,EACN,IAAIme,GAAW3B,IAAiB,SAAU7gB,GAGxC,OAAO4jB,EAFU5jB,EAAG8iB,QAAQc,YAEV,KAAM,CACtBxpB,IAFM4F,EAAG5F,KAIb,IAAIooB,GAAWxC,IAAW,SAAUhgB,GAClC,IAAIigB,EAAOjgB,EAAGigB,KACZ2D,EAAa5jB,EAAG8iB,QAAQc,WACxBvf,EAAWrE,EAAGqE,SACdjK,EAAM4F,EAAG5F,IACX,OAAOwpB,EAAW,IAAM3D,EAAKrgB,MAAO,CAClCxF,IAAKA,GACJiK,EACL,IAAIgf,GAAmB,CACrBC,gBAAiBrI,EAAQqI,iBAAmB,OAEhD,CChIe,CAAkBF,EAAsB,CACnDN,QAAS,CACPgB,YAAaY,aAA2C,EAASA,EAASZ,aAAeW,GAAeX,WACxGF,YAAac,aAA2C,EAASA,EAASd,aAAea,GAAeb,WACxGG,gBAAiBW,aAA2C,EAASA,EAASX,iBAAmBU,GAAeV,gBAElHT,gBAAiBoB,aAA2C,EAASA,EAASpB,gBAC9E0B,gBAAiBN,aAA2C,EAASA,EAASM,gBAC9ED,gBAAiB,GAAeD,EAAa,CAAC,GAAelE,IAAc,SAAU5gB,GACnF,IAAIigB,EAAOjgB,EAAGigB,KACZ6C,EAAU9iB,EAAG8iB,QACf,IAAK6B,EACH,MAAM,IAAIvC,GAAY,+GAAgHnC,GAExI,IAAKiB,GAAiBkC,KAA0BA,EAAqBgC,MACnE,MAAM,IAAIhD,GAAY,wIAAyInC,GAEjK,IAAIzN,EAAO4Q,EAAqBgC,MAAMpV,MAAK,SAAUwC,GACnD,OAAOA,EAAKnM,KAAO4Z,EAAKzN,IAC1B,IACA,IAAKA,EACH,MAAM,IAAI4P,GAAY,gGAAkGnC,EAAKzN,KAAO,kBAAmByN,GAEzJ,OAAO0E,EAAmB,CACxBU,OAAQ7S,EACRsQ,QAASA,GAEb,IAAI,GAAenC,IAAY,SAAU3gB,GACvC,IAAIigB,EAAOjgB,EAAGigB,KACZ5b,EAAWrE,EAAGqE,SACdye,EAAU9iB,EAAG8iB,QACf,IAAK8B,EACH,MAAM,IAAIxC,GAAY,6GAA8GnC,GAEtI,IAAKiB,GAAiBkC,KAA0BA,EAAqBgC,MACnE,MAAM,IAAIhD,GAAY,sIAAuInC,GAE/J,IAAIzN,EAAO4Q,EAAqBgC,MAAMpV,MAAK,SAAUwC,GACnD,OAAOA,EAAKnM,KAAO4Z,EAAKzN,IAC1B,IACA,IAAKA,EACH,MAAM,IAAI4P,GAAY,8FAAgGnC,EAAKzN,KAAO,kBAAmByN,GAEvJ,OAAO2E,EAAmB,CACxBS,OAAQ7S,EACRsQ,QAASA,EAETze,SAAUA,EACVihB,gBAAiBrF,EAAKmE,OAASM,aAA2C,EAASA,EAASM,kBAAoBb,IAAwB,CACtIlE,KAAMA,EACNmE,KAAMnE,EAAKmE,OACR,MAET,IAAI,GAAe5D,IAAS,SAAUxgB,GACpC,IAAIigB,EAAOjgB,EAAGigB,KACZ6C,EAAU9iB,EAAG8iB,QACf,IAAK+B,EACH,MAAM,IAAIzC,GAAY,kGAAmGnC,GAE3H,IAAKiB,GAAiBkC,KAA0BA,EAAqBmC,OACnE,MAAM,IAAInD,GAAY,mIAAoInC,GAE5J,IAAIzN,EAAO4Q,EAAqBmC,OAAOvV,MAAK,SAAUwC,GACpD,OAAOA,EAAKnM,KAAO4Z,EAAKzN,IAC1B,IACA,IAAKA,EACH,MAAM,IAAI4P,GAAY,0FAA4FnC,EAAKzN,KAAO,mBAAoByN,GAEpJ,OAAO4E,EAAY,CACjBQ,OAAQ7S,EACRsQ,QAASA,GAEb,QAEF,OAAOpiB,GAAU,IACnB,iBC7GO,SAAS8kB,GACdC,EACAtQ,EACAuQ,EACAjb,GAEA,IAAMkb,EAAoB,SAAC/B,EAAYE,GACrC,OAAO4B,EACJhgB,QAAO,SAAAwG,GAAK,OAAK,CAAC,oBAAqB,oBAAoB+E,SAAS/E,EAAM0Z,WAAW,IACrFhiB,KAAI,SAAAsI,GACH,OAAQA,EAAM0Z,YACZ,IAAK,6BACL,IAAK,2BACL,IAAK,qBACL,IAAK,wBACL,IAAK,6BACH,MAAO,CACLrc,OAAO3G,EAAAA,GAAAA,QAAOijB,GAAc3Z,EAAMjU,OAClC+F,OAAO4E,EAAAA,GAAAA,QAAOijB,GAAcpb,EAAOyB,EAAM7F,OAE7C,IAAK,uBACH,MAAO,CACLkD,OAAO3G,EAAAA,GAAAA,QAAOijB,GAAc3Z,EAAMjU,OAClC+F,MAAOyM,EAAOyB,EAAM7F,IAAM,IAAM,MAEpC,QACE,MAAO,CAAEkD,MAAO,uBAAwBvL,MAAOkO,EAAM0Z,YAE3D,IACChiB,KAAI,SAAA0B,EAAmBrG,GAAW,IAA3BsK,EAAKjE,EAALiE,MAAOvL,EAAKsH,EAALtH,MAMb,OAAO4lB,EAAW,KAAM,CAAEzN,MAHb,sBADWlX,EAAQ,GAAM,EAAI,UAAY,WACF,mEAGR,CAC1C2kB,EAAW,KAAM,CAAEzN,MAHL,qEAGuB2N,EAAWva,IAChDqa,EAAW,KAAM,CAAEzN,MAHL,qDAGuB2N,EAAW9lB,KAEpD,GACJ,EACM8nB,EAAU,sFAmBVC,EAAYhtB,GAAOoc,EAlBT,CACd0P,YAAW,SAACmB,GACV,GAA2B,kBAAvBA,EAAMC,aACR,OAAOD,EAAMpC,WACX,QACA,CAAEzN,MAAO2P,GACTH,EAAkBK,EAAMlD,QAAQc,WAAYoC,EAAMlD,QAAQgB,aAG9DoC,QAAQC,IAAI,uBAAyBH,EAAMC,aAC7C,EACAtB,mBAAkB,SAAAlH,GAA0D,IAA/CuI,EAAKvI,EAAb4H,OAAMe,EAAA3I,EAASqF,QAAWc,EAAUwC,EAAVxC,WAAYE,EAAUsC,EAAVtC,WACzD,GAA2B,iBAAvBkC,EAAMC,aACR,OAAOrC,EAAW,QAAS,CAAEzN,MAAO2P,GAAcH,EAAkB/B,EAAYE,IAElFoC,QAAQC,IAAI,uBAAyBH,EAAMC,aAC7C,IAIF,OAAIR,EAAcY,eAETN,GADG,aAAgBN,EAAcY,eAAe5f,IAAG,UAAUgf,EAAcY,eAAevf,IAAG,wEAG/Fif,CACT,CAEA,SAASF,GAAc7nB,GACrB,OAAOgJ,IAAahJ,EAAO,CACzBsoB,YAAa,GACbC,kBAAmB,CAAC,GAExB,UCrFO,SAASC,GAAaC,GAC3B,GAAiBhe,MAAbge,GAA2BA,EAA/B,CAGA,IAAIC,EAAiBD,EAAU1Z,cAAc4Z,WAAW,IAAK,KAOzDC,EAAW,IAAI/L,OAAO,GAAG6L,GACzBG,OAAWpe,EAgCf,MAvCY,CAAC,MAAO,YAAa,QAAS,OAAQ,eAAgB,uBAS9D4D,SAAQ,SAAAY,GACN2Z,EAASE,KAAK7Z,KAChB4Z,EAAW,eAEf,IAZc,CAAC,QAAS,OAAQ,SAAU,WAAY,yBAahDxa,SAAQ,SAAAY,GACR2Z,EAASE,KAAK7Z,KAChB4Z,EAAW,QAEf,IAhBkB,CAAC,SAAU,YAAa,aAAc,YAAa,aAAc,cAiBzExa,SAAQ,SAAAY,GACZ2Z,EAASE,KAAK7Z,KAChB4Z,EAAW,aAEf,IApBmB,CAAC,iBAAkB,MAAO,YAAa,OAAQ,cAAe,eAqBtExa,SAAQ,SAAAY,GACb2Z,EAASE,KAAK7Z,KAChB4Z,EAAW,cAEf,IAvBe,CAAC,WAAY,OAAQ,SAwB7Bxa,SAAQ,SAAAY,GACT2Z,EAASE,KAAK7Z,KAChB4Z,EAAW,mBAEf,IA7BgB,CAAC,OAAQ,UAAW,qBA8B5Bxa,SAAQ,SAAAY,GACV2Z,EAASE,KAAK7Z,KAChB4Z,EAAW,eAEf,IACOA,CAzCP,CA0CF,CC7CA,IAAIE,GAAY,CAAC,UAAW,WAAY,QAAS,OAAQ,WAAY,YAAa,YAAa,OAAQ,SAAU,aAAc,QAAS,KAAM,YAC9I,SAASC,KAYP,OAXAA,GAAW9tB,OAAOyE,OAASzE,OAAOyE,OAAOspB,OAAS,SAAUre,GAC1D,IAAK,IAAIzO,EAAI,EAAGA,EAAI7B,UAAUJ,OAAQiC,IAAK,CACzC,IAAI+sB,EAAS5uB,UAAU6B,GACvB,IAAK,IAAIC,KAAO8sB,EACVhuB,OAAOf,UAAU0F,eAAeC,KAAKopB,EAAQ9sB,KAC/CwO,EAAOxO,GAAO8sB,EAAO9sB,GAG3B,CACA,OAAOwO,CACT,EACOoe,GAASjpB,MAAML,KAAMpF,UAC9B,CAaA,SAAS6uB,GAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAE3B,OAAOD,CACT,CAMA,SAASE,GAAgBC,EAAGpsB,GAK1B,OAJAmsB,GAAkBpuB,OAAOyoB,eAAiBzoB,OAAOyoB,eAAesF,OAAS,SAAyBM,EAAGpsB,GAEnG,OADAosB,EAAE3F,UAAYzmB,EACPosB,CACT,EACOD,GAAgBC,EAAGpsB,EAC5B,CAEA,IAAIqsB,GAAyB,SAAUC,GAbvC,IAAwBC,EAAUC,EAehC,SAASH,IACP,IAAIjF,EAMJ,OALAA,EAAQkF,EAAiB3pB,KAAKJ,OAASA,MACjCkqB,cAAgBrF,EAAMqF,cAAcX,KAAKE,GAAuB5E,IACtEA,EAAMsF,cAAgBtF,EAAMsF,cAAcZ,KAAKE,GAAuB5E,IACtEA,EAAMuF,aAAevF,EAAMuF,aAAab,KAAKE,GAAuB5E,IACpEA,EAAMwF,mBAAqBxF,EAAMwF,mBAAmBd,KAAKE,GAAuB5E,IACzEA,CACT,CAvBgCoF,EAcNF,GAdJC,EAcPF,GAbNrvB,UAAYe,OAAO6oB,OAAO4F,EAAWxvB,WAC9CuvB,EAASvvB,UAAU2pB,YAAc4F,EACjCJ,GAAgBI,EAAUC,GAqB1B,IAAIK,EAASR,EAAUrvB,UAuIvB,OAtIA6vB,EAAOC,mBAAqB,SAA4BC,GACtD,OAAIxqB,KAAKyqB,MAAMC,WACT1qB,KAAKyqB,MAAMC,WAAWC,WACjB3qB,KAAKyqB,MAAMC,WAAWC,WAAWH,GAEnCxqB,KAAKyqB,MAAMC,WAAWF,GAExB,IACT,EACAF,EAAOM,SAAW,WAChB,IAAIC,EAAc7qB,KAAKuqB,mBAAmB,eAC1C,OAAIM,QAAkC9f,IAAnB/K,KAAK8qB,UACfD,EAAY7qB,KAAK8qB,WAEnB,IACT,EACAR,EAAOS,YAAc,WACnB,OAAI/qB,KAAKyqB,MAAMC,iBAAiC3f,IAAnB/K,KAAK8qB,UACzB9qB,KAAK8qB,UAEP,IACT,EACAR,EAAOU,QAAU,WACf,IAAIA,EAAUhrB,KAAKuqB,mBAAmB,WACtC,GAAIS,QAA8BjgB,IAAnB/K,KAAK8qB,UAClB,OAAOE,EAAQhrB,KAAK8qB,WAEpB9qB,KAAKirB,mBAAoB,CAE7B,EACAX,EAAOY,aAAe,WACpB,IAAIC,EAASnrB,KACb,OAAO,IAAIwgB,SAAQ,SAAUC,EAAS2K,GACpCD,EAAOE,iBAAmB5K,EAC1B0K,EAAOG,gBAAkBF,EACzBD,EAAOH,SACT,GACF,EACAV,EAAOiB,MAAQ,WACb,IAAIC,EAAWxrB,KAAKuqB,mBAAmB,SACnCiB,QAA+BzgB,IAAnB/K,KAAK8qB,WACnBU,EAASxrB,KAAK8qB,UAElB,EACAR,EAAOmB,WAAa,WAClB,IAAID,EAAWxrB,KAAKuqB,mBAAmB,SACnCiB,GACFA,GAEJ,EACAlB,EAAOJ,cAAgB,WACjBlqB,KAAKyqB,MAAMiB,UACb1rB,KAAKyqB,MAAMiB,YAEX1rB,KAAKoqB,aAAa,KAEtB,EACAE,EAAOH,cAAgB,WACjBnqB,KAAKyqB,MAAMkB,WACb3rB,KAAKyqB,MAAMkB,YAET3rB,KAAKsrB,kBACPtrB,KAAKsrB,yBACEtrB,KAAKqrB,wBACLrrB,KAAKsrB,gBAEhB,EACAhB,EAAOF,aAAe,SAAsBrN,GACtC/c,KAAKyqB,MAAMlgB,UACbvK,KAAKyqB,MAAMlgB,SAASwS,GAElB/c,KAAKqrB,mBACPrrB,KAAKqrB,iBAAiBtO,UACf/c,KAAKsrB,uBACLtrB,KAAKqrB,iBAEhB,EACAf,EAAOsB,eAAiB,WACtB,IAAIvwB,EAAS2E,KAAKuqB,mBAAmB,UACrC,GAAIlvB,QAA6B0P,IAAnB/K,KAAK8qB,UAAyB,CAC1C,IAAInV,EAAU5C,SAASyG,cAAc,OACrCxZ,KAAK8qB,UAAYzvB,EAAOsa,EAAS,CAC/BkW,QAAS7rB,KAAKyqB,MAAMoB,QACpBC,SAAU9rB,KAAKoqB,aACf2B,MAAO/rB,KAAKyqB,MAAMsB,MAClB1xB,KAAM2F,KAAKyqB,MAAMpwB,KACjB2xB,SAAUhsB,KAAKyqB,MAAMuB,SACrB,mBAAoBhsB,KAAKkqB,cACzB,iBAAkBlqB,KAAKmqB,cACvB8B,KAAMjsB,KAAKyqB,MAAMwB,KACjBC,OAAQlsB,KAAKyqB,MAAMyB,OACnBC,GAAInsB,KAAKyqB,MAAM0B,GACfC,MAAOpsB,KAAKyqB,MAAM2B,MAClBC,SAAUrsB,KAAKyqB,MAAM4B,WAEvBrsB,KAAKssB,QAAQC,YAAY5W,EAC3B,CACI3V,KAAKirB,mBAAqBjrB,KAAKyqB,MAAMC,iBAAiC3f,IAAnB/K,KAAK8qB,YAC1D9qB,KAAKirB,mBAAoB,EACzBjrB,KAAKgrB,UAET,EACAV,EAAOkC,kBAAoB,WACzBxsB,KAAK4rB,gBACP,EACAtB,EAAOmC,mBAAqB,WAC1BzsB,KAAK4rB,gBACP,EACAtB,EAAOD,mBAAqB,SAA4BpO,GACtDjc,KAAKssB,QAAUrQ,CACjB,EACAqO,EAAOjvB,OAAS,WAGd,IAAIqxB,EAAc1sB,KAAKyqB,MAcrBkC,GAbUD,EAAYb,QACXa,EAAYniB,SACfmiB,EAAYX,MACbW,EAAYryB,KACRqyB,EAAYV,SACXU,EAAYhB,UACZgB,EAAYf,UACjBe,EAAYT,KACVS,EAAYR,OACRQ,EAAYhC,WACjBgC,EAAYN,MACfM,EAAYP,GACNO,EAAYL,SA1K7B,SAAuC7C,EAAQoD,GAC7C,GAAc,MAAVpD,EAAgB,MAAO,CAAC,EAC5B,IAEI9sB,EAAKD,EAFLyO,EAAS,CAAC,EACV2hB,EAAarxB,OAAOa,KAAKmtB,GAE7B,IAAK/sB,EAAI,EAAGA,EAAIowB,EAAWryB,OAAQiC,IACjCC,EAAMmwB,EAAWpwB,GACbmwB,EAAS9lB,QAAQpK,IAAQ,IAC7BwO,EAAOxO,GAAO8sB,EAAO9sB,IAEvB,OAAOwO,CACT,CAgKmB4hB,CAA8BJ,EAAarD,KAE1D,OAAoB,gBAAoB,MAAOC,GAAS,CAAC,EAAGqD,EAAY,CACtEpS,IAAKva,KAAKqqB,qBAEd,EACOP,CACT,CAnJ6B,CAmJ3B,aAEFA,GAAU/vB,YAAc,YACxB+vB,GAAUhwB,aAAe,CACvByQ,SAAU,WAAqB,EAC/BwhB,MAAO,QACP1xB,KAAM,QACN2xB,SAAU,EACVC,KAAM,SACNG,MAAO,iEC1MT,SAAS,KAYP,OAXA,GAAW5wB,OAAOyE,QAAU,SAAUiL,GACpC,IAAK,IAAIzO,EAAI,EAAGA,EAAI7B,UAAUJ,OAAQiC,IAAK,CACzC,IAAI+sB,EAAS5uB,UAAU6B,GACvB,IAAK,IAAIC,KAAO8sB,EACVhuB,OAAOf,UAAU0F,eAAeC,KAAKopB,EAAQ9sB,KAC/CwO,EAAOxO,GAAO8sB,EAAO9sB,GAG3B,CACA,OAAOwO,CACT,EACO,GAAS7K,MAAML,KAAMpF,UAC9B,CAqBA,IAAImyB,GAAa,CAAC,EAEdC,GAAU,EClCd,IAAIC,GAAe,iBAEnB,SAASC,KACP,MAAyB,oBAAXpa,QAA0BA,OAAOqa,kBAAoB,CAAC,CACtE,CASA,IDsBwCC,GAAc7P,GCtBtD,IDsBwC6P,GC9BxC,WACE,IAAIC,EAAiBH,KACjBI,EAAWD,EAAeE,gBAAkB,gBAAkB,iBAClE,OAAIF,EAAe1C,WACV,WAAa2C,EAAW,mCAAqCL,GAAe,mBAE9E,WAAaK,EAAW,4BAA8BL,GAAe,kBAC9E,EDwBE1P,IADoDA,GCtBT,CAC3C0P,aAAcA,GACdO,WAde,aAef7G,WAAYuG,KAAaO,MAAQ,CAC/BA,MAAOP,KAAaO,OAClB,CAAC,KDkBgB,CAAC,EACf,SAA6BC,GAClC,IAAIC,EAAuBD,EAAiB3zB,aAAe2zB,EAAiBnzB,MAAQ,YAChFqzB,EACJ,SAAUC,GAhBd,IAAwB7D,EAAUC,EAkB5B,SAAS2D,EAAkBnD,EAAO5E,GAChC,IAAIhB,EAIJ,OAHAA,EAAQgJ,EAAWztB,KAAKJ,KAAMyqB,EAAO5E,IAAY7lB,MAC3C8tB,MAAQ,CAAC,EACfjJ,EAAMkJ,YAAc,GACblJ,CACT,CAxB4BoF,EAiBM4D,GAjBhB7D,EAiBH4D,GAhBVnzB,UAAYe,OAAO6oB,OAAO4F,EAAWxvB,WAC9CuvB,EAASvvB,UAAU2pB,YAAc4F,EACjCA,EAAS9F,UAAY+F,EAsBjB,IAAIK,EAASsD,EAAkBnzB,UA8J/B,OA7JA6vB,EAAO0D,mCAAqC,WAI1C,OAHKhuB,KAAKiuB,mBACRjuB,KAAKiuB,iBAAmB,uBAAyBjB,MAE5ChtB,KAAKiuB,gBACd,EACA3D,EAAO4D,eAAiB,WAEtB,OADAluB,KAAK+tB,YAAsC,mBAAjBX,GAA8BA,KAAiBA,GAClEptB,KAAK+tB,WACd,EACAzD,EAAO6D,4BAA8B,SAAqCL,GACxE,IAAI3C,EAASnrB,KAGbA,KAAKouB,SAASN,GAAO,WACnB,OAAO3C,EAAOV,MAAM4D,mBAAqBlD,EAAOV,MAAM4D,kBAAkBlD,EAAO2C,MACjF,GACF,EACAxD,EAAOgE,uCAAyC,WAC9C,IAAIC,EAAWxB,GAAW/sB,KAAK+tB,aAC/B,IAAKQ,IAAaA,EAASC,OACzB,MAAM,IAAIzP,MAAM,yBAElB,IAAK,IAAI0P,KAAUF,EAASG,UAC1BH,EAASG,UAAUD,GAAQF,UAEtBzb,OAAOyK,GAAQ0P,aACxB,EACA3C,EAAOkC,kBAAoB,WACzB,IAAImC,EAAS3uB,KACT4uB,EAAY5uB,KAAKkuB,iBACjBxxB,EAAMsD,KAAKguB,qCACXa,EAAWtR,GACbiQ,EAAaqB,EAASrB,WACtBP,EAAe4B,EAAS5B,aACxB6B,EAAWD,EAASC,SAStB,GAPItB,QAA4C,IAAvB1a,OAAO0a,KAC9BT,GAAW6B,GAAa,CACtBJ,QAAQ,EACRE,UAAW,CAAC,IAIZ3B,GAAW6B,GAAY,CACzB,IAAIhI,EAAQmG,GAAW6B,GAEvB,OAAIhI,IAAUA,EAAM4H,QAAU5H,EAAMmI,cAClC/uB,KAAKmuB,4BAA4BvH,QAInCA,EAAM8H,UAAUhyB,GAAO,SAAUkqB,GAC/B,OAAO+H,EAAOR,4BAA4BvH,EAC5C,EAEF,CAOA,IAAI8H,EAAY,CAAC,EACjBA,EAAUhyB,GAAO,SAAUkqB,GACzB,OAAO+H,EAAOR,4BAA4BvH,EAC5C,EACAmG,GAAW6B,GAAa,CACtBJ,QAAQ,EACRE,UAAWA,GAEb,IAAIM,EAASjc,SAASyG,cAAc,UAGpC,IAAK,IAAIhW,KAFTwrB,EAAOlmB,IAAM8lB,EACbI,EAAOC,OAAQ,EACO1R,GAAQoJ,WAC5BqI,EAAO7lB,aAAa3F,EAAW+Z,GAAQoJ,WAAWnjB,IAEhDsrB,IACFE,EAAOrmB,GAAKmmB,GAEd,IAAII,EAAoC,SAA2CC,GACjF,GAAIpC,GAAW6B,GAAY,CACzB,IACIQ,EADWrC,GAAW6B,GACEF,UAC5B,IAAK,IAAID,KAAUW,EACbD,EAAKC,EAAaX,YACbW,EAAaX,EAG1B,CACF,EACIxB,GAAkC,oBAAXna,SACzBA,OAAOma,GAAgB,WACrB,OAAO0B,EAAOL,wCAChB,GAEFU,EAAOK,OAAS,WACd,IAAId,EAAWxB,GAAW6B,GACtBL,IACFA,EAASC,QAAS,EAClBU,GAAkC,SAAUI,GAC1C,OAAIrC,IAGJqC,EAASf,IACF,EACT,IAEJ,EACAS,EAAOO,QAAU,WACf,IAAIhB,EAAWxB,GAAW6B,GACtBL,IACFA,EAASQ,SAAU,EACnBG,GAAkC,SAAUI,GAE1C,OADAA,EAASf,IACF,CACT,IAEJ,EACAxb,SAASpP,KAAK4oB,YAAYyC,EAC5B,EACA1E,EAAOkF,qBAAuB,WAE5B,IAAIZ,EAAY5uB,KAAK+tB,YACrB,IAAgC,IAA5BxQ,GAAQkS,gBAEV,IADA,IAAIC,EAAa3c,SAAS4c,qBAAqB,UACtClzB,EAAI,EAAGA,EAAIizB,EAAWl1B,OAAQiC,GAAK,EACtCizB,EAAWjzB,GAAGqM,IAAIhC,QAAQ8nB,IAAc,GACtCc,EAAWjzB,GAAGmzB,YAChBF,EAAWjzB,GAAGmzB,WAAWC,YAAYH,EAAWjzB,IAMxD,IAAI8xB,EAAWxB,GAAW6B,GACtBL,WACKA,EAASG,UAAU1uB,KAAKguB,uCACC,IAA5BzQ,GAAQkS,wBACH1C,GAAW6B,GAGxB,EACAtE,EAAOjvB,OAAS,WACd,IAAImyB,EAAajQ,GAAQiQ,WAErBd,EAAc1sB,KAAKyqB,MAErBqF,GADoBpD,EAAY2B,kBACjB3B,EAAYoD,cAC3BnD,EA3LV,SAAuCnD,EAAQoD,GAC7C,GAAc,MAAVpD,EAAgB,MAAO,CAAC,EAC5B,IAEI9sB,EAAKD,EAFLyO,EAAS,CAAC,EACV2hB,EAAarxB,OAAOa,KAAKmtB,GAE7B,IAAK/sB,EAAI,EAAGA,EAAIowB,EAAWryB,OAAQiC,IACjCC,EAAMmwB,EAAWpwB,GACbmwB,EAAS9lB,QAAQpK,IAAQ,IAC7BwO,EAAOxO,GAAO8sB,EAAO9sB,IAEvB,OAAOwO,CACT,CAgLuB,CAA8BwhB,EAAa,CAAC,oBAAqB,iBAMhF,OAJIc,GAAgC,oBAAX1a,SACvB6Z,EAAWa,QAA4C,IAAvB1a,OAAO0a,GAA8B1a,OAAO0a,QAAcziB,GAE5F4hB,EAAWpS,IAAMuV,GACV,IAAAtW,eAAckU,EAAkBf,EACzC,EACOiB,CACT,CAxKA,CAwKE,EAAAmC,WAIEC,GAAqB,IAAAC,aAAW,SAAUxF,EAAOlQ,GACnD,OAAO,IAAAf,eAAcoU,EAAmB,GAAS,CAAC,EAAGnD,EAAO,CAC1DqF,aAAcvV,IAElB,IAKA,OAJAyV,EAAmBj2B,YAAc,qBAAuB4zB,EAAuB,IAC/EqC,EAAmB51B,UAAY,CAC7Bi0B,kBAAmB,WAEd,KAAa2B,EAAoBtC,EAC1C,GC3MC5D,ICnBH,MCgXA,GAxV0C,SAAHliB,GAAiD,IAA3C+U,EAAI/U,EAAJ+U,KAAMoL,EAAangB,EAAbmgB,cAAemI,EAActoB,EAAdsoB,eAChEC,GAIIC,EAAAA,GAAAA,MAHF5lB,EAAQ2lB,EAAR3lB,SACA6lB,EAAYF,EAAZE,aACa1S,EAAMwS,EAAnBG,UAAa3S,OAEfjO,GAAoCC,EAAAA,EAAAA,UAAmD,IAAIhD,KAApF4jB,EAAU7gB,EAAA,GAAE8gB,EAAa9gB,EAAA,GAChCG,GAAkCF,EAAAA,EAAAA,UAAoB8gB,GAAUC,SAAzDJ,EAASzgB,EAAA,GAAE8gB,EAAY9gB,EAAA,GAC9BE,GAAoCJ,EAAAA,EAAAA,WAAS,GAAtCihB,EAAU7gB,EAAA,GAAE8gB,EAAa9gB,EAAA,GAChCE,GAAwCN,EAAAA,EAAAA,UAAS,IAA5BmhB,GAAF7gB,EAAA,GAAiBA,EAAA,IA+BpC,SAAS8gB,IACHH,KACFlgB,EAAAA,EAAAA,IAAa,OAAQ,OAAQ,iBAAkBiM,EAAK9U,OACpDgpB,GAAc,GAElB,CA0DA,OA5FArgB,EAAAA,EAAAA,YAAU,WAYWuC,SAASie,iBAAiB,IAAIhoB,IACtC2F,SAAQ,SAAA0O,GACjB,IAAM4T,EAba,SAAC5uB,EAAc6uB,GAClC,IAAMC,EAAOpe,SAASyG,cAAc,QACpC2X,EAAKC,YAAc/uB,EACnB8uB,EAAK1Y,MAAM4Y,WAAa,SACxBF,EAAK1Y,MAAM6Y,KAAOxe,OAAOye,iBAAiBL,GAAcI,KACxDve,SAASpP,KAAK4oB,YAAY4E,GAC1B,IAAM1X,EAAQ0X,EAAKK,YAEnB,OADAze,SAASpP,KAAKksB,YAAYsB,GACnB1X,CACT,CAI2BgY,CAAapU,EAAUqU,aAAa,gBAAkB,GAAIrU,GAG/E4T,EAAmB,GAFH5T,EAA0BmU,cAG5CnU,EAAU5E,MAAMoB,SAAWoX,EAAmB,GAAK,KAEvD,GACF,GAAG,IAwEDlpB,EAAAA,cAAA,QAAM1B,UnBjIc,wCmBiIgBoK,SAAU4f,GAzDhD,SAAkBpS,IACG,YACjBvN,EAAAA,EAAAA,IAAa,UAAW,OAAQ,cAAeiM,EAAK9U,OACpD,IAAM8pB,EAAmB7J,GAAWC,EAAepL,EAAKgV,iBAAkBhV,EAAKiV,WAAY3T,GAAUhY,QACnG,UACA,KAEI4rB,EAAyB/J,GAC7BC,EACApL,EAAKkV,uBACLlV,EAAKiV,WACL3T,GACAhY,QAAQ,UAAW,KAEf6rB,EAAwBnV,EAAKiV,WAChC5pB,QAAO,SAAAwG,GAAK,MAAyB,0BAArBA,EAAM0Z,UAAsC,IAC5DhiB,KAAI,SAAAsI,GAAK,OAAIA,EAAM7F,EAAE,IACrBX,QAAO,SAAA+pB,GAAO,QAAM9T,EAAS8T,EAAQ,IAClCC,EAAgBrV,EAAKiV,WACxB5pB,QAAO,SAAAwG,GAAK,MAAyB,qBAArBA,EAAM0Z,UAAiC,IACvDhiB,KAAI,SAAAsI,GAAK,OAAIA,EAAM7F,EAAE,IACrBX,QAAO,SAAA+pB,GAAO,QAAM9T,EAAS8T,MAAc9T,EAAS8T,GAAS,EAAE,IAC/D7rB,KAAI,SAAA6rB,GAAO,OAAI9T,EAAS8T,GAAS,EAAE,IAEtCpB,EAAaF,GAAUwB,YACvB,IAAIC,EAAkBJ,EAAsB9pB,QAAO,SAAAmqB,GAAY,OAAIlU,EAASkU,EAAa,IACnFC,EAAetS,GACnBnD,EAAK7P,KACL6P,EAAK2C,UACL3C,EAAK0V,uBACLR,EACAG,EACA/T,EAASiU,EAAgB,KAErBI,EAAoBR,EAAsB5rB,KAAI,SAAAisB,GAAY,OAC9DrS,GACEnD,EAAK7P,KACL,CAAC,CAAEqJ,MAAO8H,EAASkU,GAAevS,SAAU,cAC5CjD,EAAK4V,iBACLZ,EACAK,EACA/T,EAASkU,GACV,IAGI3R,QAAQ5f,IAAI,CAACwxB,GAAY91B,QAAAkZ,EAAAA,EAAAA,GAAK8c,KAAoBE,MACvD,kBAAM7B,EAAaF,GAAUgC,QAAQ,IACrC,kBAAM9B,EAAaF,GAAU1R,MAAM,GAEvC,CAIA2T,EACF,IAGwEC,YAAY,GAChF5qB,EAAAA,cAAA,MAAI1B,UnB1HS,oCmB0HiBsW,EAAK9U,OAClC8U,EAAKiV,WAAW1rB,KAAI,SAAAsI,GACnB,OAAQA,EAAM0Z,YACZ,IAAK,6BACH1Z,EAAM7F,GAAiCoC,MAA5B+d,GAAata,EAAMjU,MAAqBuuB,GAAata,EAAMjU,MAAQiU,EAAM7F,GACpF,IAAMiB,EA0UlB,SAA0BlB,GACxB,OAAQA,GACN,IAAK,QACH,OAAOgB,GAAAA,EAAeG,MACxB,IAAK,eACH,OAAOH,GAAAA,EAAeI,YACxB,QACE,OAAOJ,GAAAA,EAAekpB,KAE5B,CAnVmCC,CAAiBrkB,EAAM9F,QAC9C,OACEX,EAAAA,cAAA,OAAK1B,UAAWmD,EAAAA,GAAwB,IAAMR,GAAiBtM,IAAK8R,EAAM7F,IACxEZ,EAAAA,cAAA,SACEzB,QAASkI,EAAM7F,GACftC,UAAWmD,EAAAA,IAAsBgF,EAAMskB,UAAY,IAAMtpB,EAAAA,GAA6B,KAErFgF,EAAMjU,MAETwN,EAAAA,cAACgrB,GAAAA,EAAK,CACJpqB,GAAI6F,EAAM7F,GACVtO,KAAK,OACLE,KAAMiU,EAAM7F,GACZiC,kBAA2CG,IAA7B+d,GAAata,EAAMjU,MACjC8P,YAAamE,EAAMnE,YACnBH,SAAUsE,EAAMskB,UAChBzsB,UAAW2C,GACX,mBAAiB,sBAGjBwB,SAAUA,EACVZ,eAAgBA,EAChBa,YAAakT,EAAOnP,EAAM7F,IAC1BgC,QAASomB,IAEXhpB,EAAAA,cAACirB,GAAS,CAACrV,OAAQA,EAAQpjB,KAAMiU,EAAM7F,GAAItO,KAAK,YAC7C0tB,EAAckL,oBAEhBrpB,IAAmBF,GAAAA,EAAeI,aACjC/B,EAAAA,cAACirB,GAAS,CAACrV,OAAQA,EAAQpjB,KAAMiU,EAAM7F,GAAItO,KAAK,UAAUsO,GAAG,uBAC1Dof,EAAcmL,uBAGlBtpB,IAAmBF,GAAAA,EAAeG,OACjC9B,EAAAA,cAACirB,GAAS,CAACrV,OAAQA,EAAQpjB,KAAMiU,EAAM7F,GAAItO,KAAK,UAAUsO,GAAG,uBAC1Dof,EAAcoL,kBAMzB,IAAK,wBAEH,OADA3kB,EAAM7F,GAAiCoC,MAA5B+d,GAAata,EAAMjU,MAAqBuuB,GAAata,EAAMjU,MAAQiU,EAAM7F,GAElFZ,EAAAA,cAAA,OAAK1B,UAAWmD,EAAAA,GAAwB,IAAMR,GAAiBtM,IAAK8R,EAAM7F,IACxEZ,EAAAA,cAAA,SACEzB,QAASkI,EAAM7F,GACftC,UAAWmD,EAAAA,IAAsBgF,EAAMskB,UAAY,IAAMtpB,EAAAA,GAA6B,KAErFgF,EAAMjU,MAETwN,EAAAA,cAACgrB,GAAAA,EAAK,CACJpqB,GAAI6F,EAAM7F,GACVtO,KAAK,OACLE,KAAMiU,EAAM7F,GACZiC,kBAA2CG,IAA7B+d,GAAata,EAAMjU,MACjC8P,YAAamE,EAAMnE,YACnBH,SAAUsE,EAAMskB,UAChBzsB,UAAW2C,GAGXwB,SAAUA,EACVZ,eAAgBF,GAAAA,EAAeG,MAC/BY,YAAakT,EAAOnP,EAAM7F,IAC1B,mBAAiB,iBACjBgC,QAASomB,IAEXhpB,EAAAA,cAACirB,GAAS,CAACrV,OAAQA,EAAQpjB,KAAMiU,EAAM7F,GAAItO,KAAK,YAC7C0tB,EAAckL,oBAEjBlrB,EAAAA,cAACirB,GAAS,CAACrV,OAAQA,EAAQpjB,KAAMiU,EAAM7F,GAAItO,KAAK,UAAUsO,GAAG,kBAC1Dof,EAAcoL,kBAKvB,IAAK,6BACH,OACEprB,EAAAA,cAAA,OAAK1B,UAAWmD,EAAAA,GAAwB,IAAMR,GAAiBtM,IAAK8R,EAAM7F,IACxEZ,EAAAA,cAAA,SACEzB,QAASkI,EAAM7F,GACftC,UAAWmD,EAAAA,IAAsBgF,EAAMskB,UAAY,IAAMtpB,EAAAA,GAA6B,KAErFgF,EAAMjU,MAETwN,EAAAA,cAACqrB,GAAQ,CACPzqB,GAAI6F,EAAM7F,GACVpO,KAAMiU,EAAM7F,GACZ0B,YAAamE,EAAMnE,YACnBH,SAAUsE,EAAMskB,UAGhBroB,YAAakT,EAAOnP,EAAM7F,IAC1B6B,SAAUA,EACVG,QAASomB,IAEXhpB,EAAAA,cAACirB,GAAS,CAACrV,OAAQA,EAAQpjB,KAAMiU,EAAM7F,GAAItO,KAAK,YAC7C0tB,EAAckL,qBAKvB,IAAK,2BACH,OACElrB,EAAAA,cAAA,YAAU1B,UAAWmD,EAAAA,GAAwB,IAAMR,GAAiBtM,IAAK8R,EAAM7F,IAC7EZ,EAAAA,cAAA,UAAQ1B,UAAWmD,EAAAA,IAAsBgF,EAAMskB,UAAY,IAAMtpB,EAAAA,GAA6B,KAC3FgF,EAAMjU,MAETwN,EAAAA,cAAA,OAAK1B,UAAWmD,EAAAA,IACZmX,KAAK0S,MAAM7kB,EAAM+O,SAAsBrX,KAAI,SAACsX,EAAQjc,GAAK,OACzDwG,EAAAA,cAACurB,GAAW,CACV52B,IAAK6E,EACLoH,GAAI6F,EAAM7F,GAAKpH,EACfsK,MAAO2R,EACPjjB,KAAMiU,EAAM7F,GACZuB,SAAUsE,EAAMskB,UAChBxyB,MAAOkd,EAGP/S,YAAakT,EAAOnP,EAAM7F,IAC1B6B,SAAUA,EACVG,QAASomB,GACT,KAGNhpB,EAAAA,cAACirB,GAAS,CAACrV,OAAQA,EAAQpjB,KAAMiU,EAAM7F,GAAItO,KAAK,YAC7C0tB,EAAckL,qBAKvB,IAAK,uBACH,OACElrB,EAAAA,cAAA,OAAK1B,UAAWmD,EAAAA,GAAwB,IAAMR,GAAiBtM,IAAK8R,EAAM7F,IACxEZ,EAAAA,cAACwrB,GAAQ,CACP72B,IAAK8R,EAAM7F,GACXA,GAAI6F,EAAM7F,GACVkD,MAAO2C,EAAMjU,KACbA,KAAMiU,EAAM7F,GACZuB,SAAUsE,EAAMskB,UAGhBroB,YAAakT,EAAOnP,EAAM7F,IAC1B6B,SAAUA,EACVG,QAASomB,IAEXhpB,EAAAA,cAACirB,GAAS,CAACrV,OAAQA,EAAQpjB,KAAMiU,EAAM7F,GAAItO,KAAK,YAC7C0tB,EAAckL,qBAKvB,IAAK,mBACH,OACElrB,EAAAA,cAAA,OAAK1B,UAAWmD,EAAAA,GAAwB,IAAMR,GAAiBtM,IAAK8R,EAAM7F,IACxEZ,EAAAA,cAAA,SACEzB,QAASkI,EAAM7F,GACftC,UAAWmD,EAAAA,IAAsBgF,EAAMskB,UAAY,IAAMtpB,EAAAA,GAA6B,KAErFgF,EAAMjU,MAETwN,EAAAA,cAACyrB,GAAS,CACR92B,IAAK8R,EAAM7F,GACXA,GAAI6F,EAAM7F,GACVtO,KAAK,OACLE,KAAMiU,EAAM7F,GACZ0B,YAAamE,EAAMnE,YACnBH,SAAUsE,EAAMskB,UAChBvoB,SAAU,SAAAjK,GAAK,OApP/B,SAAkByxB,EAASzxB,GACzB,IAAMmzB,EAAY,IAAI9mB,IAAI4jB,GAC1BkD,EAAU/mB,IAAIqlB,EAASzxB,GACvBkwB,EAAciD,EAChB,CAgPmCnpB,CAASkE,EAAM7F,GAAIrI,EAAM,EAC5C+F,UnB/SK,uCmBgTLmE,SAAUA,EACVG,QAASomB,IAEXhpB,EAAAA,cAACirB,GAAS,CAACrV,OAAQA,EAAQpjB,KAAMiU,EAAM7F,GAAItO,KAAK,YAC7C0tB,EAAckL,qBAKvB,IAAK,qBACH,OACElrB,EAAAA,cAAA,OAAK1B,UAAWmD,EAAAA,GAAwB,IAAMR,GAAiBtM,IAAK8R,EAAM7F,IACxEZ,EAAAA,cAAA,SACEzB,QAASkI,EAAM7F,GACftC,UAAWmD,EAAAA,IAAsBgF,EAAMskB,UAAY,IAAMtpB,EAAAA,GAA6B,KAErFgF,EAAMjU,MAETwN,EAAAA,cAAC2rB,GAAM,CACLh3B,IAAK8R,EAAM7F,GACXA,GAAI6F,EAAM7F,GACVpO,KAAMiU,EAAM7F,GACZiC,kBAA2CG,IAA7B+d,GAAata,EAAMjU,MACjCgjB,QAASoD,KAAK0S,MAAM7kB,EAAM+O,SAC1BrT,SAAUsE,EAAMskB,UAGhBzsB,UnBxUE,oCmByUFoE,YAAakT,EAAOnP,EAAM7F,IAC1B6B,SAAUA,EACVG,QAASomB,IAEXhpB,EAAAA,cAACirB,GAAS,CAACrV,OAAQA,EAAQpjB,KAAMiU,EAAM7F,GAAItO,KAAK,YAC7C0tB,EAAckL,qBAKvB,IAAK,oBACH,OAAOlrB,EAAAA,cAAC4rB,GAAkB,CAACj3B,IAAK8R,EAAM7F,GAAIgU,KAAM,CAACnO,KAEvD,IAEC0hB,GAAkBnoB,EAAAA,cAAC+hB,GAAS,CAAC+B,QAASqE,EAAgB3lB,SAgB3D,SAAyBjK,GACvBwwB,EAAgBxwB,EAClB,IAhBIyH,EAAAA,cAAA,UACE1N,KAAK,SACLgM,UAAWmD,EAAAA,GAAAA,2CACXoqB,SAAUtD,IAAcG,GAAUwB,YAAc3B,IAAcG,GAAUgC,SAEvE9V,EAAKhL,mBAEP2e,IAAcG,GAAU1R,OACvBhX,EAAAA,cAAA,OAAK1B,UAAWmD,EAAAA,GAAAA,2CAAoDmT,EAAKkX,WAE1EvD,IAAcG,GAAUgC,SAAW1qB,EAAAA,cAAA,OAAK1B,UnBlWnB,6CmBkWsDsW,EAAKmX,gBAOvF,EA2GC,IAEIrD,GAAS,SAATA,GAAS,OAATA,EAAAA,EAAS,qBAATA,EAAAA,EAAS,2BAATA,EAAAA,EAAS,qBAATA,EAAAA,EAAS,iBAATA,CAAS,EAATA,IAAS,IC5dH,GAAgB,2CCkD3B,GA3C0C,SAAH7oB,GAAsB,IAAhBmsB,EAAQnsB,EAARmsB,SACrCC,EAAsB,SAACC,EAAuBC,EAAcC,GAKhE,OACEpsB,EAAAA,cAAA,MAAI1B,UDbQ,mCCcT6tB,GAAgBA,EAAa7rB,KAC5BN,EAAAA,cAAA,KAAG1B,UAAW2C,GAAsBO,KAAI,IAAM2qB,EAAa7rB,MACxD4rB,GAGHlsB,EAAAA,cAAA,KAAG1B,UAAW2C,GAAsBO,KAAK,KACtC0qB,GAGJE,GACCA,EAAQnsB,QAhBe,SAACosB,GAC5B,OAAOA,EAAYC,OAASD,EAAYE,eAAiBF,EAAYG,cACvE,IAc2CruB,KAAI,SAAAkuB,GAAW,OAClDrsB,EAAAA,cAAA,KAAGrL,IAAK03B,EAAYzrB,GAAItC,UDxBV,0CCwB0CkD,KAAI,IAAM6qB,EAAYC,KAAKhsB,MAChF+rB,EAAYvoB,MACX,IAId,EAEA,OACE9D,EAAAA,cAAA,MAAI1B,UDhCgB,0CCiChB0tB,EAASS,gBAAkBT,EAASU,iBACpCT,EAAoBD,EAASloB,MAAOkoB,EAASM,KAAMN,EAASW,UAC5DX,EAASY,gBAAkBZ,EAASa,iBACpCZ,EAAoBD,EAASc,OAAQd,EAASe,MAAOf,EAASgB,UAC9DhB,EAASiB,gBAAkBjB,EAASkB,iBACpCjB,EAAoBD,EAASmB,OAAQnB,EAASoB,MAAOpB,EAASqB,UAC9DrB,EAASsB,gBAAkBtB,EAASuB,iBACpCtB,EAAoBD,EAASwB,OAAQxB,EAASyB,MAAOzB,EAAS0B,UAC9D1B,EAAS2B,gBAAkB3B,EAAS4B,iBACpC3B,EAAoBD,EAAS6B,OAAQ7B,EAAS8B,MAAO9B,EAAS+B,SAGtE,EChDW,GAAW,+ECoBf,SAASC,GAAQC,GACtB,OAAO,EAAAC,GAAA,GAAOD,GAAME,aACtB,CCFO,SAASC,GAASH,GAGvB,OAFY,EAAAC,GAAA,GAAOD,GACDG,UAEpB,CC+IA,OA1IyC,SAAHvuB,GAgB/B,IAfLe,EAAEf,EAAFe,GACApO,EAAIqN,EAAJrN,KACA2P,EAAQtC,EAARsC,SAAQC,EAAAvC,EACRvB,UAAAA,OAAS,IAAA8D,EAAG,GAAEA,EACdisB,EAAaxuB,EAAbwuB,cACA9rB,EAAQ1C,EAAR2C,SACA8rB,EAAOzuB,EAAPyuB,QACA5rB,EAAS7C,EAAT6C,UACA6rB,EAAO1uB,EAAP0uB,QACAC,EAAO3uB,EAAP2uB,QACAC,EAAgB5uB,EAAhB4uB,iBACAC,EAAY7uB,EAAZ6uB,aACA/rB,EAAO9C,EAAP+C,QACA+rB,EAAe9uB,EAAf8uB,gBACA9rB,EAAYhD,EAAZgD,aAEA8E,GAAkCC,EAAAA,EAAAA,UAAS,IAAInI,MAAxCmvB,EAASjnB,EAAA,GAAEknB,EAAYlnB,EAAA,GACxBmnB,EAAQhqB,MAAMC,KAAK,IAAID,MAAM,MAAM,SAACiqB,EAAWv1B,GAAK,OAAKw0B,GAAQ,IAAIvuB,MAAUjG,CAAK,IAEpFw1B,EAAS,CACb,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,YAEF,OAgFF,SACEx8B,EACA87B,EACA/1B,EACA02B,GAEA,IAAKX,EACH,OAAOW,EAAY,CAAE5M,aAAc,WAAO,EAAG6M,WAAY,WAAO,EAAG32B,MAAAA,IAErE,OACEyH,EAAAA,cAACmvB,GAAAA,GAAU,CACTb,QAASA,EACT97B,KAAMA,EACNc,OAAQ,SAAA87B,GAAA,IAAAC,EAAAD,EAAG3oB,MAASjE,EAAQ6sB,EAAR7sB,SAAU8sB,EAAMD,EAANC,OAAQ/2B,EAAK82B,EAAL92B,MAAK,OACzC02B,EAAY,CACV5M,aAAc7f,EACd0sB,WAAYI,EACZ/2B,MAAOA,GACP,GAIV,CAtGSg3B,CAAmB/8B,EAAM87B,EAASD,GAAe,SAAArW,GAAA,IAAGqK,EAAYrK,EAAZqK,aAAc6M,EAAUlX,EAAVkX,WAAY32B,EAAKyf,EAALzf,MAAK,MAClF,kBAANqI,EACEZ,EAAAA,cAACwvB,KAAU,CACT5uB,GAAIA,EACJpO,KAAMA,EACN8L,UAAWmD,EAAAA,GAAqB,KAAOiB,EAAYjB,EAAAA,GAA4B,IAAM,IAAMnD,EAE3FgN,SAAWqjB,EAA0Bp2B,GAAS,IAAIkH,KAArBlH,EAC7BiK,SAAU,SAAAitB,GACRpN,EAAaoN,GACbltB,GAAYA,EAASktB,EACvB,EACAH,OAAQJ,EACRzuB,WAAYV,GAAO2vB,YAAY3vB,GAAOgV,QACtCwZ,QAASA,EACTC,QAASA,EACTrsB,SAAUA,EACVc,aAAcJ,EAAerQ,OAAOwQ,EACpCJ,QAAS,SAAAM,GACPP,GAAWA,EAAQO,EAAMC,OAAOvC,GAClC,IAGFZ,EAAAA,cAACwvB,KAAU,CACTlxB,UAAWmD,EAAAA,GAAqB,KAAOiB,EAAYjB,EAAAA,GAA4B,IAAM,IAAMnD,EAC3FsE,QAAS,SAAAM,GACPP,GAAWA,EAAQO,EAAMC,OAAOvC,GAClC,EACA4tB,QAASA,EACTmB,mBAAoB,SAAAC,GAAA,IAClB3B,EAAI2B,EAAJ3B,KACA4B,EAAUD,EAAVC,WACAC,EAAWF,EAAXE,YACAC,EAAaH,EAAbG,cACAC,EAAaJ,EAAbI,cACAC,EAAuBL,EAAvBK,wBACAC,EAAuBN,EAAvBM,wBAAuB,OAEvBlwB,EAAAA,cAAA,OACE0Q,MAAO,CACLyf,OAAQ,GACRC,QAAS,OACTC,eAAgB,WAGlBrwB,EAAAA,cAAA,UAAQyL,QAASskB,EAAelE,SAAUoE,EAAyBnwB,MAAO2uB,GACvE,KAEHzuB,EAAAA,cAAA,UAAQzH,MAAOy1B,GAAQC,GAAOzrB,SAAU,SAAA8tB,GAAA,IAAa/3B,EAAK+3B,EAAfntB,OAAU5K,MAAK,OAASs3B,EAAWt3B,EAAM,GACjFu2B,EAAM3wB,KAAI,SAAAsX,GAAM,OACfzV,EAAAA,cAAA,UAAQrL,IAAK8gB,EAAQld,MAAOkd,GACzBA,EACM,KAIbzV,EAAAA,cAAA,UACEzH,MAAOy2B,EAAOZ,GAASH,IACvBzrB,SAAU,SAAA+tB,GAAA,IAAah4B,EAAKg4B,EAAfptB,OAAU5K,MAAK,OAASu3B,EAAYd,EAAOjwB,QAAQxG,GAAO,GAEtEy2B,EAAO7wB,KAAI,SAAAsX,GAAM,OAChBzV,EAAAA,cAAA,UAAQrL,IAAK8gB,EAAQld,MAAOkd,GACzBA,EACM,KAIbzV,EAAAA,cAAA,UAAQyL,QAASukB,EAAenE,SAAUqE,EAAyBpwB,MAAO4uB,GACvE,KAEC,EAERpjB,SAAUsjB,EACVpsB,SAAU,SAAAyrB,GAAI,OAAIY,EAAaZ,EAAK,EACpChrB,aAAcJ,EAAerQ,OAAOwQ,GAEvC,GAEL,ECxDA,OA7DyC,SAAHnD,GAY/B,IAXLe,EAAEf,EAAFe,GACApO,EAAIqN,EAAJrN,KACA2P,EAAQtC,EAARsC,SAAQC,EAAAvC,EACRvB,UAAAA,OAAS,IAAA8D,EAAG,GAAEA,EACd7J,EAAKsH,EAALtH,MACAgK,EAAQ1C,EAAR2C,SACA8rB,EAAOzuB,EAAPyuB,QACA5rB,EAAS7C,EAAT6C,UACAC,EAAO9C,EAAP+C,QACA+rB,EAAe9uB,EAAf8uB,gBACA6B,EAAS3wB,EAAT2wB,UAEA,OAwBF,SACEh+B,EACA87B,EACA/1B,EACA02B,GAEA,IAAKX,EACH,OAAOW,EAAY,CAAE5M,aAAc,WAAO,EAAG6M,WAAY,WAAO,EAAG32B,MAAAA,IAErE,OACEyH,EAAAA,cAACmvB,GAAAA,GAAU,CACTb,QAASA,EACT97B,KAAMA,EACNc,OAAQ,SAAAs8B,GAAA,IAAAa,EAAAb,EAAGnpB,MAASjE,EAAQiuB,EAARjuB,SAAU8sB,EAAMmB,EAANnB,OAAQ/2B,EAAKk4B,EAALl4B,MAAK,OACzC02B,EAAY,CACV5M,aAAc7f,EACd0sB,WAAYI,EACZ/2B,MAAOA,GACP,GAIV,CA9CSg3B,CAAmB/8B,EAAM87B,EAAS/1B,GAAO,SAAAyf,GAAA,IAAGqK,EAAYrK,EAAZqK,aAAc6M,EAAUlX,EAAVkX,WAAY32B,EAAKyf,EAALzf,MAAK,OAChFyH,EAAAA,cAACwvB,KAAU,CACT5uB,GAAIA,EACJpO,KAAMA,EACN8L,UAAWmD,EAAAA,GAAqB,KAAOiB,EAAYjB,EAAAA,GAA4B,IAAM,IAAMnD,EAC3FoyB,gBAAc,EACdC,oBAAkB,EAElBrlB,SAAWqjB,EAA0Bp2B,GAASi4B,EAAjBj4B,EAC7BiK,SAAU,SAAAjK,GACR8pB,EAAa9pB,GACbgK,GAAYA,EAAShK,EACvB,EACA+2B,OAAQJ,EACRzuB,WAAYV,GAAO6wB,YAAY7wB,GAAOgV,QACtC5S,SAAUA,EACVc,aAAa,MACbL,QAAS,SAAAM,GACPP,GAAWA,EAAQO,EAAMC,OAAOvC,GAClC,GACA,GAEN,cChDO,SAASiwB,GACdnhB,EAGAlM,EACAwB,GAEA,IAAMkb,EAAoB,SAAC/B,EAAYE,GACrC,MAAO,CACL,CACEva,MAAON,EAAoBstB,eAC3Bv4B,MAAOyM,EAAO,gBAEhB,CACElB,MAAON,EAAoButB,oBAC3Bx4B,MAAOyM,EAAO,eAEhB,CAAElB,MAAON,EAAoBwtB,kBAAmBz4B,MAAOyM,EAAOgJ,SAC9D,CACElK,MAAON,EAAoBytB,kBAC3B14B,MAAOyM,EAAO,gBAEhB,CAAElB,MAAON,EAAoB0tB,eAAgB34B,MAAOyM,EAAOmsB,MAC3D,CAAErtB,MAAON,EAAoB4tB,gBAAiB74B,MAAOyM,EAAOqsB,KAC5D,CAAEvtB,MAAON,EAAoB8tB,gBAAiB/4B,MAAOyM,EAAOoJ,OAC5D,CACEtK,MAAON,EAAoB+tB,eAC3Bh5B,MAAOyM,EAAOipB,OAAQttB,EAAAA,GAAAA,IAAOqE,EAAOipB,KAAMluB,GAAO2vB,YAAY3vB,GAAOgV,UAEtE,CACEjR,MAAON,EAAoBguB,eAC3Bj5B,MAAOyM,EAAOysB,OAAQ9wB,EAAAA,GAAAA,IAAOqE,EAAOysB,KAAM1xB,GAAO6wB,YAAY7wB,GAAOgV,UAEtE,CACEjR,MAAON,EAAoBkuB,eAC3Bn5B,MAAOyM,EAAOzB,MAAQyB,EAAOzB,KAAK/Q,MAEpC,CACEsR,MAAON,EAAoBmuB,oBAC3Bp5B,MAAOyM,EAAO4sB,WAEhB,CAAE9tB,MAAON,EAAoBquB,eAAgBt5B,MAAOyM,EAAOoS,MAC3D,CAAEtT,MAAON,EAAoBsuB,kBAAmBv5B,MAAOyM,EAAO6X,UAC9D1e,KAAI,SAAA0B,GAAuB,IAApBiE,EAAKjE,EAALiE,MAAOvL,EAAKsH,EAALtH,MACd,OAAO4lB,EAAW,KAAM,CAAC,EAAG,CAC1BA,EAAW,KAAM,CAAC,EAAGE,GAAWlhB,EAAAA,GAAAA,QAAOijB,GAActc,MACrDqa,EAAW,KAAM,CAAC,EAAGE,GAAWlhB,EAAAA,GAAAA,QAAOijB,GAAc7nB,OAEzD,GACF,EAiBA,OAAOjF,GAAOoc,EAhBE,CACd0P,YAAW,SAACmB,GACV,GAA2B,kBAAvBA,EAAMC,aACR,OAAOD,EAAMpC,WAAW,QAAS,CAAC,EAAG+B,EAAkBK,EAAMlD,QAAQc,WAAYoC,EAAMlD,QAAQgB,aAE/FoC,QAAQC,IAAI,uBAAyBH,EAAMC,aAE/C,EACAtB,mBAAkB,SAAAlH,GAA0D,IAA/CuI,EAAKvI,EAAb4H,OAAMe,EAAA3I,EAASqF,QAAWc,EAAUwC,EAAVxC,WAAYE,EAAUsC,EAAVtC,WACzD,GAA2B,iBAAvBkC,EAAMC,aACR,OAAOrC,EAAW,QAAS,CAAC,EAAG+B,EAAkB/B,EAAYE,IAE7DoC,QAAQC,IAAI,uBAAyBH,EAAMC,aAE/C,GAGJ,CAEA,SAASJ,GAAc7nB,GACrB,OAAOgJ,IAAahJ,EAAO,CACzBsoB,YAAa,GACbC,kBAAmB,CAAC,GAExB,CCvDA,IA4aK4H,GAAS,SAATA,GAAS,OAATA,EAAAA,EAAS,qBAATA,EAAAA,EAAS,2BAATA,EAAAA,EAAS,qBAATA,EAAAA,EAAS,iBAATA,CAAS,EAATA,IAAS,IAOd,GAnb+C,SAAH7oB,GAAmE,IAA7DC,EAAKD,EAALC,MAAOsE,EAAKvE,EAALuE,MAAOZ,EAAmB3D,EAAnB2D,oBAAqBuuB,EAAkBlyB,EAAlBkyB,mBAC7EC,EAAkBpZ,KAAK0S,MAAM9nB,EAAoBwuB,iBACvDrqB,GAAkCC,EAAAA,EAAAA,UAAoB8gB,GAAUC,SAAzDJ,EAAS5gB,EAAA,GAAEihB,EAAYjhB,EAAA,GAC9BygB,GAKIC,EAAAA,GAAAA,MAJFiG,EAAOlG,EAAPkG,QACA7rB,EAAQ2lB,EAAR3lB,SACA6lB,EAAYF,EAAZE,aACa1S,EAAMwS,EAAnBG,UAAa3S,OAEf9N,GAAoCF,EAAAA,EAAAA,WAAS,GAAtCihB,EAAU/gB,EAAA,GAAEghB,EAAahhB,EAAA,GAChCE,GAAoCJ,EAAAA,EAAAA,UAAmD,IAAIhD,KAApF4jB,EAAUxgB,EAAA,GAAEygB,EAAazgB,EAAA,GAkDhC,SAASghB,IACHH,KACFlgB,EAAAA,EAAAA,IAAa,OAAQ,OAAQ,iBAAkB7I,GAC/CgpB,GAAc,GAElB,CAEA,OACE9oB,EAAAA,cAAA,QAAM0I,SAAU4f,GA9ClB,SAAkBpS,IAChBvN,EAAAA,EAAAA,IAAa,UAAW,OAAQ,cAAe7I,GAC/C,IAAM8pB,EAAmBiH,GACvBrtB,EAAoBomB,iBACpBpmB,EACA0S,GACAhY,QAAQ,UAAW,KACf4rB,EAAyB+G,GAC7BrtB,EAAoBsmB,uBACpBtmB,EACA0S,GACAhY,QAAQ,UAAW,KAErB0qB,EAAaF,GAAUwB,YACvB,IAAI/R,EAAUjC,EAAS9H,MACjBuH,EAAgB7Q,MAAMC,KAAKmR,EAASgD,aACpC+Y,EAAyBla,GAC7BvU,EAAoB0uB,UACpB,CAAC,CAAE9jB,MAAO5K,EAAoB2uB,gBAAiBta,SAAU,cACzDrU,EAAoB8mB,uBACpBR,EACAnU,EACAwC,GAEIia,EAAmBra,GACvBvU,EAAoB0uB,UACpB,CAAC,CAAE9jB,MAAO8H,EAAS9H,MAAOyJ,SAAU,cACpCrU,EAAoBgnB,iBACpBZ,EACAjU,EACAwC,GAEF,OAAOM,QAAQ5f,IAAI,CAACo5B,EAAwBG,IAAmB3H,MAC7D,kBAAM7B,EAAaF,GAAUgC,QAAQ,IACrC,kBAAM9B,EAAaF,GAAU1R,MAAM,GAEvC,KAWIhX,EAAAA,cAAA,UAAKF,GAELE,EAAAA,cAAA,OAAK1B,UAAWmD,EAAAA,GAAwB,IAAMR,IAC5CjB,EAAAA,cAAA,SAAOzB,QAAQ,gBAAgBD,UAAWmD,EAAAA,GAAqB,IAAMA,EAAAA,IAClE+B,EAAoB6uB,oBAEvBryB,EAAAA,cAAC2rB,GAAM,CACL/qB,GAAG,gBACHpO,KAAK,mBACLqQ,cAAc,EACdV,UAAU,EACVM,SAAUA,EACV+S,QAASwc,EACTtvB,YAAakT,EAAO,oBACpBhT,QAASomB,IAEXhpB,EAAAA,cAACirB,GAAS,CAACrV,OAAQA,EAAQpjB,KAAK,mBAAmBF,KAAK,YACrDy/B,EAAmB7G,qBAIxBlrB,EAAAA,cAAA,OAAK1B,UAAWmD,EAAAA,GAAwB,IAAMR,IAC5CjB,EAAAA,cAAA,SAAOzB,QAAQ,YAAYD,UAAWmD,EAAAA,GAAqB,IAAMA,EAAAA,IAC9D+B,EAAoBstB,gBAEvB9wB,EAAAA,cAACgrB,GAAAA,EAAK,CACJpqB,GAAG,YACHtO,KAAK,OACLE,KAAK,cACLqQ,cAAc,EACdP,YAAakB,EAAoB8uB,qBACjCnwB,UAAU,EACVM,SAAUA,EACVC,YAAakT,EAAa,KAC1BhT,QAASomB,IAEXhpB,EAAAA,cAACirB,GAAS,CAACrV,OAAQA,EAAQpjB,KAAK,OAAOF,KAAK,YACzCy/B,EAAmB7G,qBAIxBlrB,EAAAA,cAAA,OAAK1B,UAAWmD,EAAAA,GAAwB,IAAMR,IAC5CjB,EAAAA,cAAA,SAAOzB,QAAQ,iBAAiBD,UAAWmD,EAAAA,GAAqB,IAAMA,EAAAA,IACnE+B,EAAoButB,qBAEvB/wB,EAAAA,cAACgrB,GAAAA,EAAK,CACJpqB,GAAG,iBACHtO,KAAK,OACLE,KAAK,aACLqQ,cAAc,EACdP,YAAakB,EAAoB+uB,0BACjCpwB,UAAU,EACVM,SAAUA,EACVC,YAAakT,EAAO,cACpBhT,QAASomB,IAEXhpB,EAAAA,cAACirB,GAAS,CAACrV,OAAQA,EAAQpjB,KAAK,aAAaF,KAAK,YAC/Cy/B,EAAmB7G,qBAIxBlrB,EAAAA,cAAA,OAAK1B,UAAWmD,EAAAA,GAAwB,IAAMR,IAC5CjB,EAAAA,cAAA,SAAOzB,QAAQ,aAAaD,UAAWmD,EAAAA,GAAqB,IAAMA,EAAAA,IAC/D+B,EAAoB8tB,iBAEvBtxB,EAAAA,cAACgrB,GAAAA,EAAK,CACJpqB,GAAG,aACHtO,KAAK,OACLE,KAAK,QACLqQ,cAAc,EACdP,YAAakB,EAAoBgvB,sBACjCrwB,UAAU,EACVM,SAAUA,EACVZ,eAAgBF,GAAAA,EAAeG,MAC/BY,YAAakT,EAAc,MAC3BhT,QAASomB,IAEXhpB,EAAAA,cAACirB,GAAS,CAACrV,OAAQA,EAAQpjB,KAAK,QAAQF,KAAK,YAC1Cy/B,EAAmB7G,oBAEtBlrB,EAAAA,cAACirB,GAAS,CAACrV,OAAQA,EAAQpjB,KAAK,QAAQF,KAAK,WAC1Cy/B,EAAmB3G,kBAIxBprB,EAAAA,cAAA,OAAK1B,UAAWmD,EAAAA,GAAwB,IAAMR,IAC5CjB,EAAAA,cAAA,SAAOzB,QAAQ,eAAeD,UAAWmD,EAAAA,GAAqB,IAAMA,EAAAA,IACjE+B,EAAoBwtB,mBAEvBhxB,EAAAA,cAACgrB,GAAAA,EAAK,CACJpqB,GAAG,eACHtO,KAAK,OACLE,KAAK,UACL8P,YAAakB,EAAoBivB,wBACjCtwB,UAAU,EACVM,SAAUA,EACVC,YAAakT,EAAgB,QAC7BhT,QAASomB,IAEXhpB,EAAAA,cAACirB,GAAS,CAACrV,OAAQA,EAAQpjB,KAAK,UAAUF,KAAK,YAC5Cy/B,EAAmB7G,qBAIxBlrB,EAAAA,cAAA,OAAK1B,UAAWmD,EAAAA,GAAwB,IAAMR,IAC5CjB,EAAAA,cAAA,SAAOzB,QAAQ,eAAeD,UAAWmD,EAAAA,GAAqB,IAAMA,EAAAA,IACjE+B,EAAoBytB,mBAEvBjxB,EAAAA,cAACgrB,GAAAA,EAAK,CACJpqB,GAAG,eACHtO,KAAK,OACLE,KAAK,cACLqQ,cAAc,EACdP,YAAakB,EAAoBkvB,wBACjCvwB,UAAU,EACVM,SAAUA,EACVC,YAAakT,EAAO,eACpBhT,QAASomB,IAEXhpB,EAAAA,cAACirB,GAAS,CAACrV,OAAQA,EAAQpjB,KAAK,cAAcF,KAAK,YAChDy/B,EAAmB7G,qBAIxBlrB,EAAAA,cAAA,OAAK1B,UAAWmD,EAAAA,GAAwB,IAAMR,IAC5CjB,EAAAA,cAAA,SAAOzB,QAAQ,YAAYD,UAAWmD,EAAAA,GAAqB,IAAMA,EAAAA,IAC9D+B,EAAoB0tB,gBAEvBlxB,EAAAA,cAACgrB,GAAAA,EAAK,CACJpqB,GAAG,YACHtO,KAAK,OACLE,KAAK,OACL8P,YAAakB,EAAoBmvB,qBACjCxwB,UAAU,EACVM,SAAUA,EACVC,YAAakT,EAAa,KAC1BhT,QAASomB,IAEXhpB,EAAAA,cAACirB,GAAS,CAACrV,OAAQA,EAAQpjB,KAAK,OAAOF,KAAK,YACzCy/B,EAAmB7G,qBAIxBlrB,EAAAA,cAAA,OAAK1B,UAAWmD,EAAAA,GAAwB,IAAMR,IAC5CjB,EAAAA,cAAA,SAAOzB,QAAQ,aAAaD,UAAWmD,EAAAA,GAAqB,IAAMA,EAAAA,IAC/D+B,EAAoB4tB,iBAEvBpxB,EAAAA,cAACgrB,GAAAA,EAAK,CACJpqB,GAAG,aACHtO,KAAK,OACLE,KAAK,MACLqQ,cAAc,EACdP,YAAakB,EAAoBovB,sBACjCzwB,UAAU,EACVM,SAAUA,EACVC,YAAakT,EAAY,IACzBhT,QAASomB,IAEXhpB,EAAAA,cAACirB,GAAS,CAACrV,OAAQA,EAAQpjB,KAAK,MAAMF,KAAK,YACxCy/B,EAAmB7G,qBAIxBlrB,EAAAA,cAAA,OAAK1B,UAAWmD,EAAAA,GAAwB,IAAMR,IAC5CjB,EAAAA,cAAA,SAAOzB,QAAQ,YAAYD,UAAWmD,EAAAA,GAAqB,IAAMA,EAAAA,IAC9D+B,EAAoB+tB,gBAEvBvxB,EAAAA,cAAC6yB,GAAS,CACRjyB,GAAG,OACHpO,KAAK,OACL2P,UAAU,EACVmsB,QAASA,EACTE,QAAS,IAAI/uB,KACbmD,QAASomB,IAEXhpB,EAAAA,cAACirB,GAAS,CAACrV,OAAQA,EAAQpjB,KAAK,OAAOF,KAAK,YACzCy/B,EAAmB7G,qBAIxBlrB,EAAAA,cAAA,OAAK1B,UAAWmD,EAAAA,GAAwB,IAAMR,IAC5CjB,EAAAA,cAAA,SAAOzB,QAAQ,YAAYD,UAAWmD,EAAAA,GAAqB,IAAMA,EAAAA,IAC9D+B,EAAoBguB,gBAEvBxxB,EAAAA,cAAC8yB,GAAS,CAAClyB,GAAG,OAAOpO,KAAK,OAAO2P,UAAU,EAAMmsB,QAASA,EAAS1rB,QAASomB,IAC5EhpB,EAAAA,cAACirB,GAAS,CAACrV,OAAQA,EAAQpjB,KAAK,OAAOF,KAAK,YACzCy/B,EAAmB7G,qBAIxBlrB,EAAAA,cAAA,OAAK1B,UAAWmD,EAAAA,GAAwB,IAAMR,IAC5CjB,EAAAA,cAAA,SAAOzB,QAAQ,YAAYD,UAAWmD,EAAAA,GAAqB,IAAMA,EAAAA,IAC9D+B,EAAoBkuB,gBAEvB1xB,EAAAA,cAACgJ,EAAAA,EAAY,CACXpI,GAAG,YACHpO,KAAK,OACL+U,QAAS,SAAAhE,GAAI,OAAIA,EAAK/Q,IAAI,EAC1B87B,QAASA,EACTrlB,gBAhQR,SAAoB9B,GAClB,OAAO/C,EAAMnE,QAAO,SAAAhF,GAAM,OAAgE,IAA5DA,EAAOzI,KAAK8U,cAAcvI,QAAQoI,EAAMG,cAAqB,GAC7F,EA+PQ1E,QAASomB,IAEXhpB,EAAAA,cAACirB,GAAS,CAACrV,OAAQA,EAAQpjB,KAAK,QAAQF,KAAK,YAC1Cy/B,EAAmB7G,qBAIxBlrB,EAAAA,cAAA,OAAK1B,UAAWmD,EAAAA,GAAwB,IAAMR,IAC5CjB,EAAAA,cAAA,SAAOzB,QAAQ,iBAAiBD,UAAWmD,EAAAA,GAAqB,IAAMA,EAAAA,IACnE+B,EAAoBmuB,qBAEvB3xB,EAAAA,cAACgrB,GAAAA,EAAK,CACJpqB,GAAG,iBACHtO,KAAK,OACLE,KAAK,YACL8P,YAAakB,EAAoBuvB,0BACjC5wB,UAAU,EACVM,SAAUA,EACVC,YAAakT,EAAkB,UAC/BhT,QAASomB,IAEXhpB,EAAAA,cAACirB,GAAS,CAACrV,OAAQA,EAAQpjB,KAAK,YAAYF,KAAK,YAC9Cy/B,EAAmB7G,qBAIxBlrB,EAAAA,cAAA,OAAK1B,UAAWmD,EAAAA,GAAwB,IAAMR,IAC5CjB,EAAAA,cAAA,SAAOzB,QAAQ,YAAYD,UAAWmD,EAAAA,GAAqB,IAAMA,EAAAA,IAC9D+B,EAAoBquB,gBAEvB7xB,EAAAA,cAACgrB,GAAAA,EAAK,CACJpqB,GAAG,YACHtO,KAAK,OACLE,KAAK,OACL8P,YAAakB,EAAoBwvB,qBACjC7wB,UAAU,EACVM,SAAUA,EACVC,YAAakT,EAAa,KAC1BhT,QAASomB,IAEXhpB,EAAAA,cAACirB,GAAS,CAACrV,OAAQA,EAAQpjB,KAAK,OAAOF,KAAK,YACzCy/B,EAAmB7G,qBAIxBlrB,EAAAA,cAAA,OAAK1B,UAAWmD,EAAAA,GAAwB,IAAMR,IAC5CjB,EAAAA,cAAA,SAAOzB,QAAQ,eAAeD,UAAWmD,EAAAA,GAAqB,IAAMA,EAAAA,IACjE+B,EAAoBsuB,mBAEvB9xB,EAAAA,cAACqrB,GAAQ,CACPzqB,GAAG,eACHpO,KAAK,UACL8P,YAAakB,EAAoByvB,wBACjC9wB,UAAU,EACVM,SAAUA,EACVC,YAAakT,EAAgB,QAC7BhT,QAASomB,IAEXhpB,EAAAA,cAACirB,GAAS,CAACrV,OAAQA,EAAQpjB,KAAK,UAAUF,KAAK,YAC5Cy/B,EAAmB7G,qBAIxBlrB,EAAAA,cAAA,OAAK1B,UAAWmD,EAAAA,GAAwB,IAAMR,IAC5CjB,EAAAA,cAAA,SAAOzB,QAAQ,cAAcD,UAAWmD,EAAAA,IACrC+B,EAAoB0vB,uBAEvBlzB,EAAAA,cAACyrB,GAAS,CACR92B,IAAK,cACLiM,GAAI,cACJtO,KAAK,OACLE,KAAM,cACNgQ,SAAU,SAAAjK,GAAK,OArUvB,SAAkByxB,EAASzxB,GACzB,IAAMmzB,EAAY,IAAI9mB,IAAI4jB,GAC1BkD,EAAU/mB,IAAIqlB,EAASzxB,GACvBkwB,EAAciD,EAChB,CAiU2BnpB,CAAS,cAAehK,EAAM,EACjD+F,UAAW,GACXmE,SAAUA,EACVG,QAASomB,IAEXhpB,EAAAA,cAACirB,GAAS,CAACrV,OAAQA,EAAQpjB,KAAK,cAAcF,KAAK,YAChDy/B,EAAmB7G,qBAIxBlrB,EAAAA,cAAA,UACE1N,KAAK,SACLgM,UAAWmD,EAAAA,GAAAA,iDACXoqB,SAAUtD,IAAcG,GAAUwB,YAAc3B,IAAcG,GAAUgC,SAEvElnB,EAAoBoG,mBAEtB2e,IAAcG,GAAU1R,OACvBhX,EAAAA,cAAA,OAAK1B,UAAWmD,EAAAA,GAAAA,iDAAoD+B,EAAoBgD,cAEzF+hB,IAAcG,GAAUgC,SACvB1qB,EAAAA,cAAA,OAAK1B,UNrYe,mDMqYoBkF,EAAoBuoB,gBAIpE,ECzYWoH,GAAe,6CACf,GAAW,yCAQX,GAAY,0CCPhB,SAASC,GAAqBC,GACnC,IACMC,EAAiB,CACrBzc,OAAQ,MACRZ,QAAS,CACP,eAAgB,mBAChB,YALUlW,GAAOwzB,YASrB,OAAO5c,MACL5W,GAAOyzB,QAAUzzB,GAAO0zB,2BAA6B,uBAAyBJ,EAC9EC,GACA7I,KAAI,eAAA5qB,GAAAiW,EAAAA,GAAAA,GAAAC,KAAAA,MAAC,SAAAC,EAAMG,GAAQ,IAAAvB,EAAA8e,EAAA,OAAA3d,KAAAA,MAAA,SAAAK,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACAH,EAASgB,OAAM,OAAxB,GAAJvC,EAAIwB,EAAAU,KACLX,EAASY,GAAG,CAADX,EAAAE,KAAA,QAC6C,OAArDod,EAAS9e,GAAQA,EAAKiI,SAAY1G,EAASc,WAAUb,EAAAc,OAAA,SACpDuB,QAAQ4K,OAAOqQ,IAAM,cAAAtd,EAAAc,OAAA,SAEvBtC,EAAKA,KAAK,IAAE,wBAAAwB,EAAAgB,OAAA,GAAApB,EAAA,KACpB,gBAAAqB,GAAA,OAAAxX,EAAAvH,MAAA,KAAAzF,UAAA,EAPK,GAQR,CAqBO,SAAS8gC,GAAkCzd,GAChD,IAAI0d,EAAO,GACP1d,EAAe,OACjB0d,EAAO1d,EAAe,KAAE2d,cAActV,MAAM,KAAK,IAEnD,IAAIuV,EAAgB,GACpBA,EAAcn1B,KAAKuX,EAAS6d,MAAQ7d,EAAS6d,MAAMnzB,GAAK,MACxDkzB,EAAcn1B,KAAKuX,EAAS8d,MAAQ9d,EAAS8d,MAAMpzB,GAAK,MACxDkzB,EAAcn1B,KAAKuX,EAAS+d,MAAQ/d,EAAS+d,MAAMrzB,GAAK,MACxDkzB,EAAcn1B,KAAKuX,EAASge,MAAQhe,EAASge,MAAMtzB,GAAK,MACxDkzB,EAAcn1B,KAAKuX,EAASie,MAAQje,EAASie,MAAMvzB,GAAK,MACxD,IAzDkB0a,EAyDZ8Y,EAAkBN,EAAc7zB,QAAO,SAAAnK,GAAC,OAAU,OAANA,CAAU,IACtDkf,EAAQjV,GAAOwzB,UACjBc,EAAc,CAChBC,UAAWpe,EAAS,eACpBqe,WAAYre,EAAS,cACrBse,MAAOte,EAASmb,IAChBvc,SAAS,EACT1G,MAAO8H,EAAS9H,MAChBqmB,SAAUb,EACV5lB,QAASkI,EAASlI,QAClBC,QAASiI,EAAS,eAClBwe,UAAWxe,EAASib,KACpB/sB,MAAOgwB,EACPO,mBAA+C,IAA3BP,EAAgB3hC,QAAgByjB,EAAS0e,mBAC7DC,oBAAqB3e,EAAS4e,0BAvEdxZ,EAyEN+Y,EAxEZ5gC,OAAOa,KAAKgnB,GAAK1U,SAAQ,SAAAjS,GAAG,OAAiB,MAAZ2mB,EAAI3mB,IAA4BqO,MAAZsY,EAAI3mB,IAAkC,KAAb2mB,EAAI3mB,YAAuB2mB,EAAI3mB,EAAI,IAyEjH,IAAM2+B,EAAiB,CACrBzc,OAAQ,OACRZ,QAAS,CACP,eAAgB,mBAChB,YAAajB,GAEfpZ,KAAMgd,KAAKC,UAAUwb,IAEvB,OAAO1d,MAAM5W,GAAOyzB,QAAUzzB,GAAOg1B,mCAAoCzB,GAAgB7I,KAAI,eAAAmF,GAAA9Z,EAAAA,GAAAA,GAAAC,KAAAA,MAAC,SAAAif,EAAM7e,GAAQ,IAAAvB,EAAA8e,EAAA,OAAA3d,KAAAA,MAAA,SAAAkf,GAAA,cAAAA,EAAA5e,KAAA4e,EAAA3e,MAAA,cAAA2e,EAAA3e,KAAA,EACvFH,EAASgB,OAAM,OAAxB,GAAJvC,EAAIqgB,EAAAne,KACLX,EAASY,GAAG,CAADke,EAAA3e,KAAA,QAC8C,OAAtDod,EAAS9e,GAAQA,EAAKsgB,UAAa/e,EAASc,WAAUge,EAAA/d,OAAA,SACrDuB,QAAQ4K,OAAOqQ,IAAM,cAAAuB,EAAA/d,OAAA,SAEvBtC,GAAI,wBAAAqgB,EAAA7d,OAAA,GAAA4d,EAAA,KACZ,gBAAA5b,GAAA,OAAAwW,EAAAt3B,MAAA,KAAAzF,UAAA,EAP4F,GAQ/F,CCjEA,IA4bK61B,GAAS,SAATA,GAAS,OAATA,EAAAA,EAAS,qBAATA,EAAAA,EAAS,2BAATA,EAAAA,EAAS,qBAATA,EAAAA,EAAS,iBAATA,CAAS,EAATA,IAAS,IAOd,GAncgE,SAAH7oB,GAOtD,IANLuE,EAAKvE,EAALuE,MACAtE,EAAKD,EAALC,MACA0D,EAAmB3D,EAAnB2D,oBACAuuB,EAAkBlyB,EAAlBkyB,mBACAoD,EAAct1B,EAAds1B,eACAC,EAAoBv1B,EAApBu1B,qBAEAztB,GAA0CC,EAAAA,EAAAA,UAAS,IAA5CytB,EAAa1tB,EAAA,GAAE2tB,EAAgB3tB,EAAA,GAClC4tB,EAAa,CACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,QAkBF,IAAMC,EAfN,WACEpxB,EAAMzF,KAAKw2B,GACX/wB,EAAMzF,KAAKy2B,GACX,IAAIK,EAAcrxB,EAAMnE,QACtB,SAAApL,GAAC,IAAA6gC,EAAAC,EAAAC,EAAA,OACCL,EAAW/pB,SAAS3W,EAAEghC,YACtBN,EAAW/pB,SAAoB,QAAZkqB,EAAC7gC,EAAEghC,iBAAS,IAAAH,GAAoB,QAApBC,EAAXD,EAAax3B,QAAQ,MAAO,WAAG,IAAAy3B,OAApB,EAAXA,EAAiCruB,gBACrDiuB,EAAW/pB,SAAoB,QAAZoqB,EAAC/gC,EAAEghC,iBAAS,IAAAD,OAAA,EAAXA,EAAatuB,cAAc,IAKnD,OAHciuB,EAAWp3B,KAAI,SAAAqJ,GAAO,OAClCiuB,EAAYlrB,MAAK,SAAAvU,GAAC,IAAA8/B,EAAAC,EAAA,OAAe,QAAXD,EAAA9/B,EAAE6/B,iBAAS,IAAAC,GAAoB,QAApBC,EAAXD,EAAa53B,QAAQ,MAAO,WAAG,IAAA63B,OAApB,EAAXA,EAAiCzuB,gBAAiBE,GAAWxR,EAAE6/B,WAAaruB,CAAO,GAAC,GAG9G,CAEqBwuB,GAErBluB,GAAkCF,EAAAA,EAAAA,WAAS,GAApCU,EAASR,EAAA,GAAES,EAAYT,EAAA,GAC9BE,GAAoCJ,EAAAA,EAAAA,WAAS,GAAtCihB,EAAU7gB,EAAA,GAAE8gB,EAAa9gB,EAAA,GAEhCE,GAAkCN,EAAAA,EAAAA,UAAoB8gB,GAAUC,SAAzDJ,EAASrgB,EAAA,GAAE0gB,EAAY1gB,EAAA,GAC9BG,GAA8CT,EAAAA,EAAAA,WAAS,GAAhDquB,EAAe5tB,EAAA,GACtB6tB,GAD0C7tB,EAAA,IACNT,EAAAA,EAAAA,UAAmD,IAAIhD,MAC3FwjB,GADiB8N,EAAA,GAAeA,EAAA,IAM5B7N,EAAAA,GAAAA,OAJFiG,EAAOlG,EAAPkG,QACA7rB,EAAQ2lB,EAAR3lB,SACA6lB,EAAYF,EAAZE,aACa1S,EAAMwS,EAAnBG,UAAa3S,OAGXugB,EAAc,GAClB,SAASC,EAAWjvB,GAIlB,OAHAgvB,EAAYx3B,KAAK62B,EAAav1B,QAAO,SAAAhF,GAAM,OAAqE,IAAjEA,EAAO46B,UAAUvuB,cAAcvI,QAAQoI,EAAMG,cAAqB,KACjHguB,EAAiBa,GACjB5tB,GAAa,GACNitB,EAAav1B,QAAO,SAAAhF,GAAM,OAAsE,KAAlEA,aAAM,EAANA,EAAQ46B,UAAUvuB,cAAcvI,QAAQoI,EAAMG,eAAqB,GAC1G,CAEA,SAAS0hB,IACHH,KACFlgB,EAAAA,EAAAA,IAAa,OAAQ,OAAQ,iBAAkB7I,GAC/CgpB,GAAc,GAElB,CAkBA,IADA,IAAIuN,EAAsB,GACjB3hC,EAAI,EAAGA,EAAI,EAAGA,IACrB2hC,EAAoB13B,KAClBqB,EAAAA,cAAA,OAAK1B,UAAW2C,IACdjB,EAAAA,cAACgJ,EAAAA,EAAY,CACXpI,GAAI,YACJpO,KAAM,OAASkC,EAAE2G,WACjBkM,QAAS,SAAAhE,GAAI,OAAIA,EAAKsyB,SAAS,EAC/BvH,QAASA,EACTrlB,gBAAiBmtB,IAEnBp2B,EAAAA,cAAA,OAAK1B,UAAWmD,EAAAA,IAAyB6G,EAAYypB,EAAmB7G,mBAAqB,MAmBnG,OACElrB,EAAAA,cAAA,WACEA,EAAAA,cAAA,QAAM0I,SAAU4f,GA/CpB,SAAkBpS,GAChB,MAAMmf,IAAqC,IAApBY,GAAwD,IAAzBZ,EAAc5iC,SAAoC,IAApBwjC,GAApF,CAIE1tB,GAAa,IAEfI,EAAAA,EAAAA,IAAa,UAAW,OAAQ,cAAe7I,GAC/C,IAAIw2B,EAAiB3C,GAAkCzd,GACvD,OAAOuC,QAAQ5f,IAAI,CAACy9B,IAAiB7L,MACnC,kBAAM7B,EAAaF,GAAUgC,QAAQ,IACrC,kBAAM9B,EAAaF,GAAU1R,MAAM,GALrC,CAJEzO,GAAa,EAWjB,IAkC4CjK,UFnKtB,2CEmKoDssB,YAAY,GAChF5qB,EAAAA,cAAA,UAAKF,GAELE,EAAAA,cAAA,OAAK1B,UAAWmD,EAAAA,GAAwB,IAAMR,IAC5CjB,EAAAA,cAAA,SAAOzB,QAAQ,cAAcD,UAAWmD,EAAAA,GAAqB,IAAMA,EAAAA,IAChE+B,EAAoBstB,gBAEvB9wB,EAAAA,cAACgrB,GAAAA,EAAK,CACJpqB,GAAG,cACHtO,KAAK,OACLE,KAAK,cACLqQ,cAAc,EACdP,YAAakB,EAAoB8uB,qBACjCnwB,UAAU,EACVM,SAAUA,EACVC,YAAakT,EAAO,eACpBtX,UAAW2C,GACX2B,QAASomB,IAEXhpB,EAAAA,cAACirB,GAAS,CAACrV,OAAQA,EAAQpjB,KAAK,cAAcF,KAAK,YAChDy/B,EAAmB7G,qBAIxBlrB,EAAAA,cAAA,OAAK1B,UAAWmD,EAAAA,GAAwB,IAAMR,IAC5CjB,EAAAA,cAAA,SAAOzB,QAAQ,aAAaD,UAAWmD,EAAAA,GAAqB,IAAMA,EAAAA,IAC/D+B,EAAoButB,qBAEvB/wB,EAAAA,cAACgrB,GAAAA,EAAK,CACJpqB,GAAG,aACHtO,KAAK,OACLE,KAAK,aACLqQ,cAAc,EACdP,YAAakB,EAAoB+uB,0BACjCpwB,UAAU,EACVM,SAAUA,EACVC,YAAakT,EAAO,cACpBtX,UAAW2C,GACX2B,QAASomB,IAEXhpB,EAAAA,cAACirB,GAAS,CAACrV,OAAQA,EAAQpjB,KAAK,aAAaF,KAAK,YAC/Cy/B,EAAmB7G,qBAIxBlrB,EAAAA,cAAA,OAAK1B,UAAWmD,EAAAA,GAAwB,IAAMR,IAC5CjB,EAAAA,cAAA,SAAOzB,QAAQ,OAAOD,UAAWmD,EAAAA,IAC9B+B,EAAoB+yB,qBAEvBv2B,EAAAA,cAAC6yB,GAAS,CACRjyB,GAAG,OACHpO,KAAK,OACLqQ,cAAc,EACdV,UAAU,EACVmsB,QAASA,EACTE,QAAS,IAAI/uB,KACbnB,UF5NgB,+CE6NhBiwB,QAAS,KACTE,iBAAkBjrB,EAAoBgzB,+BACtC9H,aAAclrB,EAAoBizB,2BAClC7zB,QAASomB,KAIbhpB,EAAAA,cAAA,OAAK1B,UAAWmD,EAAAA,GAAwB,IAAMR,IAC5CjB,EAAAA,cAAA,SAAOzB,QAAQ,UAAUD,UAAWmD,EAAAA,IACjC+B,EAAoBwtB,mBAEvBhxB,EAAAA,cAACgrB,GAAAA,EAAK,CACJpqB,GAAG,UACHtO,KAAK,OACLE,KAAK,UAEL8P,YAAakB,EAAoBivB,wBACjChwB,SAAUA,EACVnE,UAAW2C,GACX2B,QAASomB,KAIbhpB,EAAAA,cAAA,OAAK1B,UAAWmD,EAAAA,GAAwB,IAAMR,IAC5CjB,EAAAA,cAAA,SAAOzB,QAAQ,OAAOD,UAAWmD,EAAAA,IAC9B+B,EAAoB0tB,gBAEvBlxB,EAAAA,cAACgrB,GAAAA,EAAK,CACJpqB,GAAG,OACHtO,KAAK,OACLE,KAAK,OACL8P,YAAakB,EAAoBmvB,qBACjClwB,SAAUA,EACVnE,UAAW2C,GACX2B,QAASomB,KAIbhpB,EAAAA,cAAA,OAAK1B,UAAWmD,EAAAA,GAAwB,IAAMR,IAC5CjB,EAAAA,cAAA,SAAOzB,QAAQ,cAAcD,UAAWmD,EAAAA,IACrC+B,EAAoBytB,mBAEvBjxB,EAAAA,cAACgrB,GAAAA,EAAK,CACJpqB,GAAG,cACHtO,KAAK,OACLE,KAAK,cACLqQ,cAAc,EACdP,YAAakB,EAAoBkvB,wBACjCjwB,SAAUA,EACVnE,UAAW2C,GACX2B,QAASomB,KAIbhpB,EAAAA,cAAA,OAAK1B,UAAWmD,EAAAA,GAAwB,IAAMR,IAC5CjB,EAAAA,cAAA,SAAOzB,QAAQ,MAAMD,UAAWmD,EAAAA,GAAqB,IAAMA,EAAAA,IACxD+B,EAAoB4tB,iBAEvBpxB,EAAAA,cAACgrB,GAAAA,EAAK,CACJpqB,GAAG,MACHtO,KAAK,OACLE,KAAK,MACLqQ,cAAc,EACdP,YAAakB,EAAoBovB,sBACjCzwB,UAAU,EACVM,SAAUA,EACVC,YAAakT,EAAY,IACzBtX,UAAW2C,GACXY,eAAgBF,GAAAA,EAAeK,gBAC/BY,QAASomB,IAEXhpB,EAAAA,cAACirB,GAAS,CAACrV,OAAQA,EAAQpjB,KAAK,MAAMF,KAAK,WACxCkR,EAAoBkzB,0BAEvB12B,EAAAA,cAACirB,GAAS,CAACrV,OAAQA,EAAQpjB,KAAK,MAAMF,KAAK,YACxCy/B,EAAmB7G,qBAIxBlrB,EAAAA,cAAA,OAAK1B,UAAWmD,EAAAA,GAAwB,IAAMR,IAC5CjB,EAAAA,cAAA,SAAOzB,QAAQ,QAAQD,UAAWmD,EAAAA,IAC/B+B,EAAoB8tB,iBAEvBtxB,EAAAA,cAACgrB,GAAAA,EAAK,CACJpqB,GAAG,QACHtO,KAAK,OACLE,KAAK,QACLqQ,cAAc,EACdP,YAAakB,EAAoBgvB,sBACjC/vB,SAAUA,EACVZ,eAAgBF,GAAAA,EAAeG,MAC/BY,YAAakT,EAAc,MAC3BtX,UAAW2C,GACX2B,QAASomB,IAEXhpB,EAAAA,cAACirB,GAAS,CAACrV,OAAQA,EAAQpjB,KAAK,QAAQF,KAAK,WAC1Cy/B,EAAmB3G,kBAIxBprB,EAAAA,cAAA,OAAK1B,UAAWmD,EAAAA,GAAwB,IAAMR,IAC5CjB,EAAAA,cAAA,SACEzB,QAAQ,YACRD,UAC2B,IAAzB+2B,EAAc5iC,OAAegP,EAAAA,GAAqB,IAAMA,EAAAA,GAA6BA,EAAAA,IAGtF+B,EAAoBkuB,gBAEvB1xB,EAAAA,cAAA,WAAMq2B,IAGRr2B,EAAAA,cAAA,OAAK1B,UAAWmD,EAAAA,GAAwB,IAAMR,GAA9BQ,qDACdzB,EAAAA,cAACwrB,GAAQ,CACP5qB,GAAI,0BACJkD,MAAON,EAAoBmzB,6BAC3BnkC,KAAM,qBAGN8L,UAAWmD,EAAAA,GACXgB,SAAUA,EACVG,QAASomB,KAIbhpB,EAAAA,cAAA,OAAK1B,UAAWmD,EAAAA,GAAwB,IAAMR,GAAkB,IAAMA,IACpEjB,EAAAA,cAACwrB,GAAQ,CACP5qB,GAAI,6BACJkD,MAAON,EAAoBozB,gCAC3BpkC,KAAM,6BACN2P,UAAU,EAGVO,YAAakT,EAAmC,2BAChDnT,SAAUA,EACVnE,UAAWmD,EAAAA,GACXmB,QAASomB,IAEXhpB,EAAAA,cAAA,KACEwB,KACEgC,EAAoBqzB,kBAAkB,GAAGvK,KACrC9oB,EAAoBqzB,kBAAkB,GAAGvK,KAAKhsB,KAC9CkD,EAAoBqzB,kBAAkB,GAAG7rB,SACvCxH,EAAoBqzB,kBAAkB,GAAG7rB,SAAShK,IAClD,IAGPwC,EAAoBqzB,kBAAkB,GAAG/yB,OAG5C9D,EAAAA,cAACirB,GAAS,CAACrV,OAAQA,EAAQpjB,KAAM,6BAA8BF,KAAK,YACjEy/B,EAAmB7G,qBAIxBlrB,EAAAA,cAAA,OAAK1B,UAAWmD,EAAAA,GAAwB,IAAMR,GAAkB,IAAMA,IACpEjB,EAAAA,cAACwrB,GAAQ,CACP5qB,GAAI,2BACJkD,MAAON,EAAoBszB,8BAC3BtkC,KAAM,2BAGNiQ,SAAUA,EACVnE,UAAWmD,EAAAA,GACXmB,QAASomB,KAIbhpB,EAAAA,cAAA,UACE1N,KAAK,SACLgM,UAAWmD,EAAAA,GAAAA,8CACXoqB,SAAUtD,IAAcG,GAAUwB,YAAc3B,IAAcG,GAAUgC,SAEvElnB,EAAoBoG,mBAEtB2e,IAAcG,GAAU1R,OACvBhX,EAAAA,cAAA,OAAK1B,UAAWmD,EAAAA,GAAAA,6CAAmD,YAAU,YAAYs1B,KAAK,SAC3FvzB,EAAoBgD,cAGxB+hB,IAAcG,GAAUgC,SACvB1qB,EAAAA,cAAA,OAAK1B,UFxYa,+CEwYqB,YAAU,UAC9CkF,EAAoBuoB,iBAMjC,ECzRA,GAhHwD,SAAHlsB,GAA4D,IAAtDC,EAAKD,EAALC,MAAO0D,EAAmB3D,EAAnB2D,oBAAqBuuB,EAAkBlyB,EAAlBkyB,mBACrFpqB,GAAkCC,EAAAA,EAAAA,UAAS,IAApCovB,EAASrvB,EAAA,GAAEsvB,EAAYtvB,EAAA,GAC9BG,GAA4CF,EAAAA,EAAAA,UAAS,IAA9CutB,EAAcrtB,EAAA,GAAEovB,EAAiBpvB,EAAA,GACxCE,GAAwDJ,EAAAA,EAAAA,UAAS,IAA1DwtB,EAAoBptB,EAAA,GAAEmvB,EAAuBnvB,EAAA,GAEpDE,GAAoCN,EAAAA,EAAAA,WAAS,GAAtCwvB,EAAUlvB,EAAA,GAAEmvB,EAAanvB,EAAA,GA8ChC,OA7CAO,EAAAA,EAAAA,YAAU,WACR,IFMI6qB,EENEgE,EAAqBlE,GAAqB,QAAQ3I,MAAK,SAAA8M,GAC3D9e,QAAQ5f,IAAI,CAACy+B,IAAqB7M,MAChC,kBAAMyM,EAAkBK,EAAM,IAC9B,kBAAML,EAAkB,GAAG,GAE/B,IACMM,EAA2BpE,GAAqB,QAAQ3I,MAAK,SAAA8M,GACjE9e,QAAQ5f,IAAI,CAAC2+B,IAA2B/M,MACtC,kBAAM0M,EAAwBI,EAAM,IACpC,kBAAMJ,EAAwB,GAAG,GAErC,IACMM,GFNFnE,EAAiB,CACrBzc,OAAQ,MACRZ,QAAS,CACP,eAAgB,mBAChB,YALUlW,GAAOwzB,YAQd5c,MAAM5W,GAAOyzB,QAAUzzB,GAAO0zB,2BAA4BH,GAAgB7I,KAAI,eAAAzS,GAAAlC,EAAAA,GAAAA,GAAAC,KAAAA,MAAC,SAAAkC,EAAM9B,GAAQ,IAAAvB,EAAA8e,EAAA,OAAA3d,KAAAA,MAAA,SAAAyC,GAAA,cAAAA,EAAAnC,KAAAmC,EAAAlC,MAAA,cAAAkC,EAAAlC,KAAA,EAC/EH,EAASgB,OAAM,OAAxB,GAAJvC,EAAI4D,EAAA1B,KACLX,EAASY,GAAG,CAADyB,EAAAlC,KAAA,QAC6C,OAArDod,EAAS9e,GAAQA,EAAKiI,SAAY1G,EAASc,WAAUuB,EAAAtB,OAAA,SACpDuB,QAAQ4K,OAAOqQ,IAAM,cAAAlb,EAAAtB,OAAA,SAEvBtC,EAAKA,MAAI,wBAAA4D,EAAApB,OAAA,GAAAa,EAAA,KACjB,gBAAAkB,GAAA,OAAAnB,EAAA1f,MAAA,KAAAzF,UAAA,EAPoF,KEDzC43B,MAAK,SAAA8M,GAC7C9e,QAAQ5f,IAAI,CAAC4+B,IAAkBhN,MAC7B,kBAAMwM,EAAaM,EAAM,IACzB,kBAAMN,EAAa,GAAG,GAE1B,IACAI,GAAc,EAChB,GAAG,IAyBIr3B,EAAAA,cAAA,WAtBmB,GAApBg3B,EAAUvkC,OAEVuN,EAAAA,cAAC03B,GAAgC,CAC/BtzB,MAAO4yB,EACPl3B,MAAOA,EACP0D,oBAAqBA,EACrBuuB,mBAAoBA,EACpBoD,eAAgBA,EAChBC,qBAAsBA,IAGjBgC,EAEPp3B,EAAAA,cAAA,OAAK1B,UHpDgB,iDGqDnB0B,EAAAA,cAAA,OAAK1B,UHpDU,4CGoDqByC,IAAKhB,GAAO43B,OAAO32B,IAAKK,IAAKtB,GAAO43B,OAAOt2B,OAI5ErB,EAAAA,cAAA,SAAIwD,EAAoBo0B,qBAKrC,cC0DA,GApHmD,SAAH/3B,GAA4B,IAAtBg4B,EAAch4B,EAAdg4B,eACpDlwB,GAAwDC,EAAAA,EAAAA,UAAS,IAA1DkwB,EAAoBnwB,EAAA,GAAEowB,EAAuBpwB,EAAA,GAMtB,SAAAqwB,IAK7B,OAL6BA,GAAAliB,EAAAA,GAAAA,GAAAC,KAAAA,MAA9B,SAAAC,EAA+BiiB,GAAI,IAAA7zB,EAAAqQ,EAAAyjB,EAAA,OAAAniB,KAAAA,MAAA,SAAAK,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,GACb6hB,EAAAA,GAAAA,GAASF,GAAK,OAAvB,OAAL7zB,EAAKgS,EAAAU,KAAAV,EAAAE,KAAA,GACW8hB,EAAAA,GAAAA,GAAeH,GAAK,OAApCxjB,EAAO2B,EAAAU,KAwDWuhB,EAvDej0B,EAAMk0B,KAuDKrlB,EAvDCwB,EAAQ6jB,KAwDrDC,SACAC,SACAC,SAFAF,EApDR,SAA6BtlB,GAC3B,IAAM7O,EAAQ,GAMd,OALA6O,EAAgB9U,KAAI,SAAA2V,GAClBA,EAAY4kB,eAAev6B,KAAI,SAAAoF,GAC7Ba,EAAMzF,KAAK4E,EACb,GACF,IACOa,CACT,CA4CyBu0B,CAAoB1lB,GACrCulB,EA3CR,SAAiCD,EAAgBtlB,EAAiBolB,GAChE,IAAMlkB,EAAqB,GAoB3B,OAnBAokB,EAAep6B,KAAI,SAAAoF,GACjB,IAAM6Q,EAAmB,GACzBnB,EAAgB9U,KAAI,SAAA2V,GAClBA,EAAY4kB,eAAev6B,KAAI,SAAAkW,GAC7B,GAAI9Q,EAAKq1B,QAAUvkB,EAAQukB,OAAQ,CACjC,IAAMC,EAAmBR,EAAa9tB,MAAK,SAAAvU,GAAC,OAAIA,EAAE8iC,IAAMv1B,EAAKq1B,MAAM,IACnE,GAAIC,EAAkB,CACpB,IAAME,GAuCGC,EAvCiBH,EAAiBI,KAwC/CC,EAAoBF,EAAS1xB,cAC5BuwB,EAAe53B,QAAO,SAAAjK,GAAC,OAAIA,EAAEmjC,SAASC,SAAS,GAAGF,EAAoB,KAxCnEL,EAAiBE,MAAQA,EAAM,GAC/B3kB,EAAiBzV,KAAKmV,GACtBK,EAAmBxV,KAAK,CACtB4E,KAAMs1B,EACNpkB,QAASL,GAEb,CACF,CA+BR,IAAqB4kB,EACbE,CA/BF,GACF,GACF,IACO/kB,CACT,CAqB2BklB,CAAwBd,EAAgBtlB,EAAiBolB,GAC5EI,EApBR,SAAuCa,GACrC,OAAOA,EAAqBr5B,QAC1B,SAAC+T,EAAKxa,GAAK,OAAKA,IAAU8/B,EAAqBrlB,WAAU,SAAAC,GAAI,OAAIA,EAAK3Q,OAASyQ,EAAIzQ,IAAI,GAAC,GAE5F,CAgB0Cg2B,CAA8Bf,GA1DhEN,EA4CR,SAA6CO,GAC3C,OAAOA,EAAgCt6B,KAAI,SAAA4O,GACzC,MAAO,CACLxJ,KAAMwJ,EAAKxJ,KACXkR,QAAS1H,EAAK0H,QAAQxU,QACpB,SAACuH,EAAShO,GAAK,OAAKA,IAAUuT,EAAK0H,QAAQR,WAAU,SAAAC,GAAI,OAAIA,EAAK4kB,KAAOtxB,EAAQsxB,EAAE,GAAC,IAG1F,GACF,CAMSU,CAAoCf,GA1D3CV,EAAwBG,GAAc,wBAAA9hB,EAAAgB,OAsDxC,IAA0BihB,EAA0BplB,EAC5CslB,EACAC,EACAC,CAzDgC,GAAAziB,EAAA,KACvCgiB,EAAA1/B,MAAA,KAAAzF,UAAA,CAiED,OA1EA4V,EAAAA,EAAAA,YAAU,YAEJ,SAEwB4O,GAAA2gB,EAAA1/B,MAAC,KAADzF,UAAA,CAH5B4mC,CAAgB15B,KAAAA,OAClB,GAAG,IAyEDC,EAAAA,cAAA,OAAK1B,UCzFc,mDD0FjB0B,EAAAA,cAAA,MAAI1B,UCrFS,+CDqFiByB,KAAAA,OAAc25B,4BAC3C5B,EAAqB35B,KAAI,SAAAw7B,GACxB,OACE35B,EAAAA,cAAA,OAAK1B,UC3FG,6CD2FqB3J,IAAKglC,EAAWp2B,KAAKu1B,IAChD94B,EAAAA,cAAA,OAAK1B,UC1FQ,qDD2FVq7B,EAAWp2B,KAAKw1B,MACf/4B,EAAAA,cAAA,OAAKe,IAAK44B,EAAWp2B,KAAKw1B,MAAM/3B,IAAKK,IAAKs4B,EAAWp2B,KAAK01B,OAE1DU,EAAWp2B,KAAK01B,MAGpBj5B,EAAAA,cAAA,MAAI1B,UClGS,qDDmGVq7B,EAAWllB,QAAQtW,KAAI,SAAAsW,GACtB,OACEzU,EAAAA,cAAA,MAAI1B,UClGQ,yDDkG4B3J,IAAK8f,EAAQqkB,IACnD94B,EAAAA,cAAA,OAAK1B,UCxGS,8DDyGXmW,EAAQmlB,YACP55B,EAAAA,cAAA,OACEsB,wBAAyB,CACvBtC,OAAQuC,IAAakT,EAAQmlB,gBAIjC55B,EAAAA,cAAA,UAAKyU,EAAQolB,OAKvB,KAIR,IAGN,EE3HWC,GAAkB,4CAClBC,GAAiB,2CAGjBC,GAAY,sCC+DvB,GA7DyC,SAAHn6B,GAAuB,IAAjBo6B,EAASp6B,EAATo6B,UAC1C,SAASC,EAAoBC,GAC3B,GAAKA,EAAWC,aAIT,GAAID,EAAWC,aAAeD,EAAWE,UAC9C,OAAOp5B,gDAJP,GAAIk5B,EAAWG,SACb,OAAOr5B,GAAwB,IAAMA,GAKzC,OAAOA,GAAwB,IAAMA,EACvC,CA0BA,OACEjB,EAAAA,cAAA,OAAK1B,UDxCa,sCCyCf27B,EAAUM,eAAep8B,KAAI,SAAAg8B,GAC5B,OACEn6B,EAAAA,cAAA,KACEwB,KACG24B,EAAWK,cAAiBL,EAAWM,aAEpCN,EAAWK,aACTL,EAAWK,aACXL,EAAWM,cAAsD,eAAtCN,EAAWM,aAAata,WACjD,IAAMga,EAAWM,aAAan6B,KAC9B,IALJ,IAONhC,UAAW47B,EAAoBC,GAC/BxlC,IAAKwlC,EAAWv5B,IAvC1B,SAA8Bu5B,GAC5B,OAAMA,EAAWG,WAAaH,EAAWE,YAAgBF,EAAWC,cAAgBD,EAAWG,SACtFt6B,EAAAA,cAAA,OAAK1B,UAAW2C,IAAyBk5B,EAAWr6B,QAExDq6B,EAAWC,aAAeD,EAAWG,SACjCt6B,EAAAA,cAAA,OAAK1B,UAAW2C,IAAyBk5B,EAAWG,UAEzDH,EAAWC,aAAeD,EAAWE,UAErCr6B,EAAAA,cAAA,WACmC,QAAhCm6B,EAAWE,UAAU15B,OACpBX,EAAAA,cAACc,EAAAA,EAAQ,CACPC,IAAKo5B,EAAWE,UAAUr5B,IAC1B1C,UDhCQ,qCCiCR4C,gBAAiB,SAAAC,GAAG,OAAIA,EAAIC,aAAa,aAAc+4B,EAAWE,UAAUh5B,KAAO,GAAG,IAGxFrB,EAAAA,cAAA,OAAKe,IAAKo5B,EAAWE,UAAUr5B,IAAKK,IAAK84B,EAAWE,UAAUh5B,KAAO,GAAI/C,UDrClE,0CC2Bf,CAeF,CAmBWo8B,CAAqBP,GAG5B,IAGN,EC7DWQ,GAAmB,mFCkN9B,SAASpzB,GAAQC,GACf,OAAOA,EAAUA,EAAQqyB,KAAO,EAClC,CAEO,IAkBP,GA9NuD,SAAHh6B,GAAwC,IAAlC+6B,EAAU/6B,EAAV+6B,WAAY/C,EAAch4B,EAAdg4B,eAC9D1kC,GAAYkd,EAAAA,EAAAA,UAElB1I,GAA0BC,EAAAA,EAAAA,UAAS,IAA5BizB,EAAKlzB,EAAA,GAAEmzB,EAAQnzB,EAAA,GACtBG,GAAkCF,EAAAA,EAAAA,UAAS,MAApCmzB,EAASjzB,EAAA,GAAEkzB,EAAYlzB,EAAA,GAC9BE,GAAkCJ,EAAAA,EAAAA,UAAS,MAApCqzB,EAASjzB,EAAA,GAAEkzB,EAAYlzB,EAAA,GAC9BE,GAAkCN,EAAAA,EAAAA,WAAS,GAApCuzB,EAASjzB,EAAA,GAAEkzB,EAAYlzB,EAAA,GAqC9B,SAASmzB,EAAiCC,EAAUC,GAClD,IAAIC,EAAcD,EAAKE,mBACnB5xB,EAAS0xB,EAAK3C,OACd2C,EAAKG,uBACPF,EAAcD,EAAKG,sBAEjBH,EAAKI,mBACPH,EAAcD,EAAKK,kBAEjBL,EAAKM,kBACPL,EAAcD,EAAKO,iBAErB,IAEIrK,EACAsK,EAHA9N,EAAO,IAAIxuB,KACXu8B,EAA4B,GAAlB/N,EAAKgO,WAAkBhO,EAAKiO,aAGtCC,EAAgBb,EAASc,MAAMn8B,QAAO,SAAAsD,GAAI,OAAIA,EAAKu1B,IAAMjvB,CAAM,IACnE,GAAI2xB,EAAcQ,GAAW,EAC3BvK,EAAOmJ,EAAWyB,gBAClBN,EAAgB,MACX,CACL,GAAIP,EAAcQ,GAAW,GAAI,CAC/B,IAAIM,EAAY7+B,KAAKC,OAAO89B,EAAcQ,GAAW,IAErDvK,EAAO6K,GAA0B,GAAbA,EAAiB,MAAQ,UAD5Bd,EAAcQ,GAAW,GAC0B,OACtE,MACEvK,EAAO+J,EAAcQ,EAAU,QAEjCD,EAAgBP,EAAcQ,CAChC,CACAT,EAAKgB,qBAAuB,CAAE9K,KAAAA,EAAMsK,cAAAA,GACpCR,EAAKiB,cAAgBL,EACrB,IArCmBnD,EACbE,EAoCAuD,EAAcnB,EAASoB,gBAAgBnyB,MAAK,SAAAoyB,GAAO,OAAIA,EAAQ7D,KAAOyC,EAAKqB,gBAAgB,IACjGrB,EAAKsB,oBAAsBJ,EAAYK,mBACnCvB,EAAKiB,eAAiBjB,EAAKiB,cAAc,KAC3CjB,EAAKwB,kBAxCY/D,EAwCmBuC,EAAKiB,cAAc,GAAGvD,KAvCtDC,EAAoBF,EAAS1xB,cAC5BuwB,EAAe53B,QAAO,SAAAjK,GAAC,OAAIA,EAAEmjC,SAASC,SAAS,GAAGF,EAAoB,KAwC/E,CAEA,SAAS8D,EAAgB71B,GAgBvB,OAfAi0B,GAAa,IACb6B,EAAAA,GAAAA,IAAa91B,GAAOsjB,MAAK,SAAAyS,GACvB,IAAKA,EAGH,OAFAhC,EAAa,MACbE,GAAa,GACN,KAET8B,EAAcC,MAAMh/B,KAAI,SAAAo9B,GACtBF,EAAiC6B,EAAe3B,EAClD,IACA2B,EAAcC,MAAMt2B,MAAK,SAAU1Q,EAAGrB,GACpC,OAAOqB,EAAEomC,qBAAqBR,cAAgBjnC,EAAEynC,qBAAqBR,aACvE,IACAb,EAAagC,EACf,IACOjC,CACT,CAEA,SAASmC,EAAwBj2B,GAC/B,GAAIA,GAAkB,IAATA,EAAa,CACxB,IACIk2B,EADAC,EAAan2B,EAAMjF,QAEtB4T,EAAAA,GAAAA,GAAAC,KAAAA,MAAC,SAAAC,IAAA,OAAAD,KAAAA,MAAA,SAAAK,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,GACiBinB,EAAAA,GAAAA,IAAgBD,GAAW,OAA5CD,EAAQjnB,EAAAU,KACRgkB,EAASuC,GAAS,wBAAAjnB,EAAAgB,OAAA,GAAApB,EAAA,IAFnBF,GAID,IAAM0nB,GAlFkBC,EAkFmB5C,GAhFvB4C,EAAax9B,QAC/B,SAAC+T,EAAKxa,GAAK,OAAKA,IAAUikC,EAAaxpB,WAAU,SAAAC,GAAI,OAAIA,EAAKwpB,YAAc1pB,EAAI0pB,SAAS,GAAC,IAIrF,GA6EP,OADA1C,EAAawC,GAoFnB,SAAmBr2B,EAAeC,EAAeC,GAC/C,GAAID,EACF,OAAOA,EAASnH,QAAO,SAAAhF,GAAM,OAAsE,IAAlEoM,EAAUpM,GAAQqM,cAAcvI,QAAQoI,EAAMG,cAAqB,GAExG,CAvFaJ,CAAOo2B,EAAYE,EAAiBj2B,GAC7C,CArFF,IAA4Bk2B,EAsF1B,MAAO,EACT,EA1GAh1B,EAAAA,EAAAA,YAAU,WACR,GAAIsC,OAAOmH,SAAShL,OAAQ,CAC1B,IAAMC,EAOV,SAA6Bw2B,GAC3B,IAAMC,EAAYD,EAAMpf,MAAM,KAC9B,GAAIqf,EAAU,IAAsB,IAAhBA,EAAU,GAAU,CACtC,IAAMz2B,EAAQy2B,EAAU,GAAGrf,MAAM,OAEjC,OADApX,EAAM,GAAKA,EAAM,GAAG+Z,WAAW,IAAK,KAC7B/Z,CACT,CACA,OAAO,IACT,CAfkB02B,CAAoB9yB,OAAOmH,SAAShL,QAC9CC,GACF61B,EAAgB71B,EAAM,GAE1B,CACF,GAAG,IA+GH,OACEnH,EAAAA,cAAA,OAAK1B,UD3IoB,8DC4IvB0B,EAAAA,cAAA,QAAM1B,UAAWw/B,GAAAA,GAAmBjnB,OAAO,MAAMrE,IAAKrf,GACpD6M,EAAAA,cAAA,OAAK1B,UAAWw/B,GAAAA,GAAAA,2DAA+ClD,EAAW96B,OAC1EE,EAAAA,cAAA,OAAK1B,UDhJK,mDCiJR0B,EAAAA,cAAA,OAAK1B,UDhJO,uDCiJV0B,EAAAA,cAAA,OAAK1B,UDnJE,oDCoJL0B,EAAAA,cAAA,SAAOzB,QAAQ,aAAaq8B,EAAWmD,qBACvC/9B,EAAAA,cAACgJ,EAAAA,EAAY,CACXxG,SAAUw4B,EACV/xB,gBAAiBm0B,EACjB71B,QAASA,GACT3G,GAAG,YACH0B,YACGy4B,GAAaA,EAAUlB,MACvBoB,GAAaA,EAAU+C,MAAM,GAAGnE,MACjCe,EAAWqD,4BAGfj+B,EAAAA,cAAA,SACE1N,KAAK,SACLE,KAAK,SACL+F,MACGwiC,GAAaA,EAAU2C,UAAY,IAAM3C,EAAUlB,MACnDkB,GAAaA,EAAUjC,GAAK,IAAMiC,EAAUlB,UAMvD75B,EAAAA,cAAA,UACE1B,UAAW2C,2DAA4BQ,EAAAA,GACvCnP,KAAK,SACLmZ,QA3CiB,WACvB,IAEMyyB,EAAYd,EAFLjqC,EAAUsd,QACU,OAAElY,MAAMgmB,MAAM,KACO,IAClD2f,GAAaA,EAAU,IACzBlB,EAAgBkB,EAAU,GAAGR,UAAYQ,EAAU,GAAGR,UAAYQ,EAAU,GAAGpF,IAEjF/tB,OAAOozB,QAAQC,aAAa,CAAC,EAAGpzB,SAASlL,MAAOiL,OAAOmH,SAAS1Q,KAAK+c,MAAM,KAAK,GAClF,GAqCSqc,EAAWyD,oBAIhBr+B,EAAAA,cAAA,OAAK1B,UD3K4B,wEC4K9B28B,EACCA,EAAUkC,MAAMh/B,KAAI,SAAAnI,GAEhB,OAAOA,EAAEwmC,cAAcr+B,KAAI,SAAAoF,GACzB,OACEvD,EAAAA,cAAA,OAAK1B,UDlLK,4DCkL6B3J,IAAK4O,EAAKu1B,IAC9C9iC,EAAE+mC,iBAAiB,GAClB/8B,EAAAA,cAAA,OAAKe,IAAK/K,EAAE+mC,iBAAiB,GAAG/7B,IAAK1C,UAAW2C,KAEhDjB,EAAAA,cAAA,OAAK1B,UAAW2C,uEAA8DsC,EAAK01B,MAErFj5B,EAAAA,cAAA,OAAK1B,UDzLK,+DC0LPtI,EAAE6mC,oBAAsB7mC,EAAE6mC,oBAAsBt5B,EAAKs2B,MAExD75B,EAAAA,cAAA,OAAK1B,UD/LA,0DC+LgCtI,EAAEumC,qBAAqB9K,MAGlE,GAEJ,IAEAzxB,EAAAA,cAAA,OAAK1B,UD3MW,2DC2MsB68B,IAAcF,EAAYj7B,EAAAA,cAAA,SAAI46B,EAAWp0B,cAAoB,OAK7G,EC1MW,GAAe,kDACf83B,GAAc,iDAEdC,GAAY,+CACZC,GAAiB,oDACjBC,GAAgB,mDAQhBC,GAAW,8CACXC,GAAkB,qDAElBC,GAAW,8CAaXC,GAAgB,mDAWhBC,GAAc,iDAMdC,GAAkB,43BCtB7B,IAqnBA,GArnBqD,SAAHl/B,GAAoD,IAA9C+U,EAAI/U,EAAJ+U,KAAMoqB,EAAgBn/B,EAAhBm/B,iBAAkBnH,EAAch4B,EAAdg4B,eACxE1kC,GAAYkd,EAAAA,EAAAA,UACVie,GAAYjG,EAAAA,GAAAA,MAAZiG,QACR3mB,GAA4CC,EAAAA,EAAAA,eAAS5E,GAA9Ci8B,EAAct3B,EAAA,GAAEu3B,EAAiBv3B,EAAA,GACxCG,GAA0CF,EAAAA,EAAAA,UAAS,MAA5Cu3B,EAAar3B,EAAA,GAAEs3B,EAAgBt3B,EAAA,GACtCE,GAAsCJ,EAAAA,EAAAA,UAAS,MAAxCy3B,EAAWr3B,EAAA,GAAEs3B,EAAct3B,EAAA,GAClCE,GAAwCN,EAAAA,EAAAA,eAAS5E,GAA1Cu8B,EAAYr3B,EAAA,GAAEs3B,EAAet3B,EAAA,GACpCG,GAA4CT,EAAAA,EAAAA,UAAS,MAA9C63B,EAAcp3B,EAAA,GAAEq3B,EAAiBr3B,EAAA,GACxC6tB,GAAwCtuB,EAAAA,EAAAA,UAAS,MAA1C+3B,EAAYzJ,EAAA,GAAE0J,EAAe1J,EAAA,GAEpC2J,GAAsCj4B,EAAAA,EAAAA,UAAS,MAAxCk4B,EAAWD,EAAA,GAAEE,EAAcF,EAAA,GAClCG,GAA0Cp4B,EAAAA,EAAAA,WAAS,GAA5Cq4B,EAAaD,EAAA,GAAEE,EAAgBF,EAAA,GAEtCG,GAAgDv4B,EAAAA,EAAAA,UAAS,IAAlDw4B,EAAgBD,EAAA,GAAEE,EAAmBF,EAAA,GAC5CG,GAA4C14B,EAAAA,EAAAA,UAAS,IAA9C24B,EAAcD,EAAA,GAAEE,EAAiBF,EAAA,GAExC,SAASG,EAAmB5F,GAC1B,OAAOA,GAAS,EAClB,CA8CA,SAAStzB,EAAQC,GACf,OAAOA,EAAUA,EAAQqyB,KAAO,cAClC,EA0CApxB,EAAAA,EAAAA,YAAU,WACR,GAAIsC,OAAOmH,SAAShL,OAAQ,CAC1B,IAAMw5B,EAAc31B,OAAOmH,SAAShL,OACpC,GAAIw5B,EAAa,CACf,IAAMC,EAAY,IAAIC,gBAAgBF,GAChCG,EAAYF,EAAUl8B,IAAI,aAAa8Z,MAAM,KAC7CuiB,EAAUH,EAAUl8B,IAAI,WAAW8Z,MAAM,KAC3CsiB,GAAaA,EAAU,IAAMA,EAAU,IAAMA,EAAU,IACzDzB,EAAiB,CACftG,GAAI+H,EAAU,GACdhH,KAAMgH,EAAU,GAChBE,UAAWF,EAAU,KAGrBC,GAAWA,EAAQ,IAAMA,EAAQ,IAAMA,EAAQ,IACjDxB,EAAe,CACbxG,GAAIgI,EAAQ,GACZjH,KAAMiH,EAAQ,GACdC,UAAWD,EAAQ,KAGvB,IAAMljC,EA3CZ,SAAkCijC,EAAqBC,GACrD,IAAIvsB,EAAkB,CAAEjiB,KAAM,GAAIiG,MAAO,MACrCic,EAAgB,CAAEliB,KAAM,GAAIiG,MAAO,MAiBvC,MAhBoB,UAAhBsoC,EAAU,IACZtsB,EAAMjiB,KAAO,cACbiiB,EAAMzD,SAAW+vB,EAAU,GAC3BtsB,EAAM1D,UAAYgwB,EAAU,KAE5BtsB,EAAMjiB,KAAO,IACbiiB,EAAMhc,MAAQsoC,EAAU,IAER,UAAdC,EAAQ,IACVtsB,EAAIliB,KAAO,cACXkiB,EAAI1D,SAAWgwB,EAAQ,GACvBtsB,EAAI3D,UAAYiwB,EAAQ,KAExBtsB,EAAIliB,KAAO,IACXkiB,EAAIjc,MAAQuoC,EAAQ,IAEf,CAACvsB,EAAOC,EACjB,CAuBuBwsB,CAAyBH,EAAWC,GACjDG,EAAW,IAAIxhC,KACfyhC,EAAKjlC,OAAOglC,EAASE,WAAWC,SAAS,EAAG,KAC5CC,EAAKplC,OAAOglC,EAAS7S,WAAa,GAAGgT,SAAS,EAAG,KACjDE,EAAOL,EAAS9S,cAChBoN,EAAO0F,EAAShF,WAChBD,EAAUiF,EAAS/E,aAAa7gC,WACd,GAAlB2gC,EAAQvpC,SACVupC,EAAU,IAAMA,GAElB,IAAIvK,EAAO8J,EAAO,IAAMS,EACpBuF,EAAQL,EAAK,IAAMG,EAAK,IAAMC,EAClCE,EAAmB5jC,EAAS,GAAIA,EAAS,GAAI2jC,EAAO9P,EAAM7zB,EAAS,GAAGtL,KAAMsL,EAAS,GAAGtL,MACxFyY,OAAOozB,QAAQC,aAAa,CAAC,EAAGpzB,SAASlL,MAAOiL,OAAOmH,SAAS1Q,KAAK+c,MAAM,KAAK,GAClF,CACF,CACF,GAAG,IAsDH,SAASijB,EAAmBC,EAAaC,EAAWzT,EAAMwD,EAAMkQ,EAAoBC,EAAkBC,IACpGC,EAAAA,GAAAA,IAAqBL,EAAaC,EAAWzT,EAAMwD,EAAMkQ,EAAoBC,EAAkBC,GAC5FpX,MAAK,SAAAsX,GACJ,GAAIA,EAAW,CACb,IAAMC,GAAeC,EAAAA,GAAAA,IAAoCF,EAAWlK,GACpEmH,EAAiBgD,GACjBjC,EAAe,KACjB,CACF,IACCmC,OAAM,SAAAC,GACmB,KAApBA,EAAc,GAChBpC,EAAenrB,EAAKwtB,8BACS,KAApBD,EAAc,KACnBA,EAAc,GAAG32B,SAAS,aAC5Bg1B,EAAkB5rB,EAAKytB,sBACdF,EAAc,GAAG32B,SAAS,gBACnC60B,EAAoBzrB,EAAKytB,sBAG/B,GACJ,CAEA,IAAMC,EAAe,SAAA3E,GAAK,OAAI,SAAA9oC,GACvB4qC,GAA4B,cAAV9B,GAA2BgC,GAAyB,WAAThC,IAIpD,cAAVA,EACE,gBAAiB4E,WACnBA,UAAUC,YAAYC,oBACpB,SAAU7kC,GACQoN,SAASC,eAAe,uBAC9B1S,MAAQ,GAClB,IAAImqC,EAAS9kC,EAAS8kC,OACtBA,EAAa,KAAI9tB,EAAK+tB,iBACtBjD,EAAkBgD,GACd/C,IACFC,EAAgB,MAChBJ,EAAgB,MAChBF,EAAe,OAEjBe,EAAoB,IACpBnB,EAAkBwD,GAClBtD,EAAiB,KACnB,IACA,SAAU1L,GACJA,EAAMx4B,MAAQw4B,EAAMkP,mBAAmBniB,QAAQC,IAAI,oBACzD,IAGe,YAAVid,GACL,gBAAiB4E,WACnBA,UAAUC,YAAYC,oBACpB,SAAU7kC,GACMoN,SAASC,eAAe,qBAC9B1S,MAAQ,GAChB,IAAImqC,EAAS9kC,EAAS8kC,OACtBA,EAAa,KAAI9tB,EAAK+tB,iBACtB/C,EAAgB8C,GACZjD,IACFC,EAAkB,MAClBR,EAAkB,MAClBE,EAAiB,OAEnBoB,EAAkB,IAClBhB,EAAgBkD,GAChBpD,EAAe,KACjB,IACA,SAAU5L,GACJA,EAAMx4B,MAAQw4B,EAAMkP,mBAAmBniB,QAAQC,IAAI,oBACzD,IAIR,CAAC,EAsCD,IAAAmiB,GAAgCj7B,EAAAA,EAAAA,WAAS,GAAlCk7B,EAAUD,EAAA,GAAEE,EAASF,EAAA,GAoB5B,SAASG,IAET,EArBAv6B,EAAAA,EAAAA,YAAU,WACR,GAAIsC,QAAUA,OAAOC,UAAYA,SAASC,eAAe,iBAAkB,CACzE,IAAIg4B,EAAaj4B,SAASC,eAAe,iBAW1B,IAAIi4B,kBATJ,SAAUC,GACvB,QAAkCC,EAAlCC,EAAAC,GAAqBH,KAAaC,EAAAC,KAAAE,MAAE,CACb,cADNH,EAAA7qC,MACFjG,MACXywC,GAAWD,EAGf,CACF,IAISU,QAAQP,EAZJ,CAAErkB,YAAY,EAAM6kB,WAAW,GAa9C,CACF,IAMA,IAAAC,GAAkC97B,EAAAA,EAAAA,UAAS,MAApC4oB,EAASkT,EAAA,GAAEC,EAAYD,EAAA,IAC9Bj7B,EAAAA,EAAAA,YAAU,WACR,IAAIwlB,EAAO,IAAIxuB,KACfwuB,EAAK2V,SAAS3V,EAAKgO,WAAax+B,KAAKomC,MAAM5V,EAAKiO,aAAe,KAC/DjO,EAAK6V,WAAW,EAAG,EAAG,GACtB,IAAIrS,EAAOxD,EAAKvuB,UAChBikC,EAAalS,EACf,GAAG,CAACjB,IAEJ,IAAAuT,GAAwDn8B,EAAAA,EAAAA,WAAS,GAA1Do8B,EAAoBD,EAAA,GAAEE,EAAuBF,EAAA,GACpDG,IAAoDt8B,EAAAA,EAAAA,WAAS,GAAtDu8B,GAAkBD,GAAA,GAAEE,GAAqBF,GAAA,GAChDG,IAA0Cz8B,EAAAA,EAAAA,UAAS,MAA5C08B,GAAaD,GAAA,GAAEE,GAAgBF,GAAA,GACtCG,IAAsC58B,EAAAA,EAAAA,UAAS,MAAxC68B,GAAWD,GAAA,GAAEE,GAAcF,GAAA,GAClCG,IAAoC/8B,EAAAA,EAAAA,UAAS,MAAtCg9B,GAAUD,GAAA,GAAEE,GAAaF,GAAA,IAEhCl8B,EAAAA,EAAAA,YAAU,WACR,IAAIq8B,GAAMC,EAAAA,EAAAA,MACC,GAAPD,GACFD,GAAcC,EAElB,GAAG,CAACF,MAEJn8B,EAAAA,EAAAA,YAAU,WACRu8B,IACF,GAAG,CAAChB,KAEJv7B,EAAAA,EAAAA,YAAU,WACRw8B,IACF,GAAG,CAACd,KAEJ,IAAMa,GAAwB,WACxBJ,KACEZ,IAAyBG,IAC3BS,GAAWrwB,QACXqwB,GAAWM,MAAQ,WACjBzkB,QAAQC,IAAI,cACZkkB,GAAWrwB,OACb,GACUyvB,IACVY,GAAWxtB,OACXwtB,GAAWM,MAAQ,WACjBzkB,QAAQC,IAAI,uBACd,GAEFkkB,GAAWO,QAAU,WACnB1kB,QAAQC,IAAI,UACd,EAEAkkB,GAAWQ,SAAW,SAAAliC,GACpB,IAAMmiC,EAAavgC,MAAMC,KAAK7B,EAAMoiC,SACjCnnC,KAAI,SAAAlD,GAAM,OAAIA,EAAO,EAAE,IACvBkD,KAAI,SAAAlD,GAAM,OAAIA,EAAOoqC,UAAU,IAC/B7kC,KAAK,KACH6kC,IAAef,IAAmBe,GAAcf,IAAiBe,GAAcf,GAAczK,QAChG0K,GAAiB,CAAE1K,KAAMwL,IACzBjG,EAAiB,CAAEvF,KAAMwL,IACzBr6B,SAASC,eAAe,uBAAuBC,QAC/CF,SAASC,eAAe,uBAAuBs6B,OAC/Cv6B,SAASC,eAAe,uBAAuBC,SAEjD05B,GAAWpd,QAAU,SAAAge,GACnB/kB,QAAQC,IAAI8kB,EAAW9R,MACzB,CACF,EAEJ,EAEMuR,GAAsB,WACtBL,KACET,KAAuBH,GACzBY,GAAWrwB,QACXqwB,GAAWM,MAAQ,WACjBzkB,QAAQC,IAAI,cACZkkB,GAAWrwB,OACb,GACU4vB,KACVS,GAAWxtB,OACXwtB,GAAWM,MAAQ,WACjBzkB,QAAQC,IAAI,uBACd,GAEFkkB,GAAWO,QAAU,WACnB1kB,QAAQC,IAAI,UACd,EACAkkB,GAAWQ,SAAW,SAAAliC,GACpB,IAAMmiC,EAAavgC,MAAMC,KAAK7B,EAAMoiC,SACjCnnC,KAAI,SAAAlD,GAAM,OAAIA,EAAO,EAAE,IACvBkD,KAAI,SAAAlD,GAAM,OAAIA,EAAOoqC,UAAU,IAC/B7kC,KAAK,KACH6kC,IAAeZ,IAAiBY,GAAcZ,IAAeY,GAAcZ,GAAY5K,QAC1F6K,GAAe,CAAE7K,KAAMwL,IACvB/F,EAAe,CAAEzF,KAAMwL,IACvBr6B,SAASC,eAAe,qBAAqBC,QAC7CF,SAASC,eAAe,qBAAqBs6B,OAC7Cv6B,SAASC,eAAe,qBAAqBC,SAE/C05B,GAAWpd,QAAU,SAAAge,GACnB/kB,QAAQC,IAAI8kB,EAAW9R,MACzB,CACF,EAEJ,EAMA,OACE1zB,EAAAA,cAAA,WACEA,EAAAA,cAAA,OAAK1B,UDzcsB,0DC0czB0B,EAAAA,cAAA,QAAMwS,IAAKrf,EAAW0jB,OAAO,MAAM4uB,OAAQ,IAAK/8B,SA1SnC,SAAA7T,GACjBA,EAAEgU,iBACFk3B,EAAe,MACf,IACIc,EAEAC,EAHE4E,EAAOvyC,EAAUsd,QAEnBkxB,EAAqB,GAErBC,EAAmB,GACnBC,EAAW6D,EAAe,SAAEnwB,QAC5BkqB,GACFkC,EAAqB,cACrBd,EAAYpB,IAEZoB,EAAY6E,EAAoB,cAAEntC,MAAMgmB,MAAM,KAAK,GACnDojB,EAAqB+D,EAAoB,cAAEntC,MAAMgmB,MAAM,KAAK,IAE1DohB,GACFiC,EAAmB,cACnBd,EAAUnB,IAEVmB,EAAU4E,EAAkB,YAAEntC,MAAMgmB,MAAM,KAAK,GAC/CqjB,EAAmB8D,EAAkB,YAAEntC,MAAMgmB,MAAM,KAAK,IAE1D,IAAI0P,EAAOyX,EAAW,KAAEntC,MACpBk5B,EAAOiU,EAAW,KAAEntC,MACxB,IAAKsoC,GAA0B,IAAbA,GAAgC79B,MAAb69B,GAAuC,aAAbA,EAC7D,GAAI5B,GAAkBA,EAAepF,KACnCgH,EAAY5B,EAAenG,GAC3B6I,EAAqB1C,EAAe8B,cAC/B,MAAI9B,GAAkBA,EAAe,IAAMA,EAAe,GAAGpF,MAKlE,YADAwG,EAAoBzrB,EAAKytB,sBAHzBxB,EAAY5B,EAAe,GAAGnG,GAC9B6I,EAAqB1C,EAAe,GAAG8B,SAIzC,CAEF,IAAKD,GAAsB,IAAXA,GAA4B99B,MAAX89B,GAAmC,aAAXA,EACvD,GAAIvB,GAAgBA,EAAa1F,KAC/BiH,EAAUvB,EAAazG,GACvB8I,EAAmBrC,EAAawB,cAC3B,MAAIxB,GAAgBA,EAAa,IAAMA,EAAa,GAAG1F,MAK5D,YADA2G,EAAkB5rB,EAAKytB,sBAHvBvB,EAAUvB,EAAa,GAAGzG,GAC1B8I,EAAmBrC,EAAa,GAAGwB,SAIrC,CAEFS,EAAmBX,EAAWC,EAAS7S,EAAMwD,EAAMkQ,EAAoBC,EAAkBC,EAC3F,GAyPQ7hC,EAAAA,cAAA,MAAI1B,UD5aK,4CC4aqBsW,EAAK9U,OACnCE,EAAAA,cAAA,OAAK1B,UDrdY,oDCsdf0B,EAAAA,cAAA,OAAK1B,UD1dQ,kDC2dX0B,EAAAA,cAAA,OAAK1B,UAAW,IACd0B,EAAAA,cAAA,SAAOzB,QAAQ,sBAAsBqW,EAAK+wB,gBAC1C3lC,EAAAA,cAAA,OAAK1B,UAAW2C,IACdjB,EAAAA,cAACgJ,EAAAA,EAAY,CACXxG,SAjYlB,SAAyBojC,GACvBlG,EAAkB,MAClBW,EAAoB,IACpBnB,EAAkB0G,GAAa3G,GAC/B4G,YAAW,WACT5B,GAAwB,EAC1B,GAAG,KACL,EA2XkBh7B,gBAxalB,SAAsB9B,GACpB,OAAIs4B,GACFC,EAAkB,MACX,IAEJv4B,GAAkBnE,MAATmE,GAA+B,IAATA,GAAwB,aAATA,GAfrD,SAA0BA,IACxB2+B,EAAAA,GAAAA,IAAqB3+B,GAAOsjB,MAAK,SAAAsb,GAC/B,GAAIA,EAAY,CACd,IAAIC,EAAgBvF,EAAmBsF,GAEvC,OADA7G,EAAkB8G,GACXA,CACT,CACF,GACF,CAUEC,CAAiB9+B,GACTrC,MAAMiX,QAAQkjB,IAAmBA,GAAmB,IAHnD,EAIX,EA+ZkB13B,QAASA,EACT3G,GAAG,sBACH0B,YAAam9B,EAAiB7qB,EAAK+tB,iBAAmB/tB,EAAKsxB,qBAC3DvX,iBAAiB,EACjBp2B,MAAO4mC,IAAgCM,GAAkC,IACzE78B,QAAS,kBAAMogC,CAAO,IAExBhjC,EAAAA,cAAA,UACE1B,UAAW2C,GACXklC,WAAY7D,EAAa,aACzB72B,QAAS62B,EAAa,aACtBhwC,KAAK,UAEL0N,EAAAA,cAACc,EAAAA,EAAQ,CACPC,IAAK6T,EAAKwxB,gBAAgBplC,IAC1B1C,UAAW2C,GACXC,gBAAiB,SAAAC,GAAG,OAAIA,EAAIC,aAAa,aAAcwT,EAAKwxB,gBAAgB/kC,KAAO,GAAG,KAG1FrB,EAAAA,cAAA,UACE1B,UAAW2C,GACXL,GAAI,gCACJulC,WAAY,WACVlC,GAAwB,SAAAoC,GAAS,OAAKA,CAAS,GACjD,EACA56B,QAAS,WACPw4B,GAAwB,SAAAoC,GAAS,OAAKA,CAAS,GACjD,EACA/zC,KAAK,UAEL0N,EAAAA,cAACc,EAAAA,EAAQ,CACPC,IAAK6T,EAAK0xB,oBAAoBtlC,IAC9B1C,UAAW2C,GACXC,gBAAiB,SAAAC,GAAG,OAAIA,EAAIC,aAAa,aAAcwT,EAAK2xB,qBAAuB,GAAG,MAI3FnG,EAAmBpgC,EAAAA,cAAA,OAAK1B,UAAW2C,IAAsBm/B,GAA0B,KACpFpgC,EAAAA,cAAA,SACE1N,KAAK,SACLE,KAAK,gBACL+F,MACGknC,EAEG7qB,EAAK+tB,iBADL1D,GAAkBA,EAAenG,GAAK,IAAMmG,EAAepF,KAAO,IAAMoF,EAAe8B,aAKjG/gC,EAAAA,cAAA,UAAQ1B,UD7eI,kDC6e4BmN,QApOpD,SAAsB5W,GACpB,GACEoqC,GACAA,EAAepF,MACf0F,GACAA,EAAa1F,OACZ4F,IACAE,EACD,CACA,IAAM6G,EAAWvH,EACXwH,EAASlH,EACfL,EAAkBuH,GAClBjH,EAAgBgH,GAChBpH,EAAiBqH,GACjBnH,EAAekH,EACjB,MAAO,GAAI/G,EAAgB,CACzB,IAAIoB,EAAYpB,EAChBA,EAAe5F,KAAOjlB,EAAK+tB,iBAC3B/C,EAAgBiB,GAChB3B,EAAkBK,GAClBG,EAAkB,MAClBN,EAAiBG,GACjBD,EAAeuB,GACfrB,EAAgBqB,EAClB,MAAO,GAAIlB,EAAc,CACvB,IAAImB,EAAUnB,EACdmB,EAAQjH,KAAOjlB,EAAK+tB,iBACpBjD,EAAkBoB,GAClBtB,EAAgBP,GAChBW,EAAgB,MAChBN,EAAeL,GACfG,EAAiB0B,GACjB5B,EAAkB4B,EACpB,CACF,GAmMc9gC,EAAAA,cAACc,EAAAA,EAAQ,CACPC,IAAK6T,EAAK8xB,yBAAyB1lC,IACnC1C,UAAW2C,GACXC,gBAAiB,SAAAC,GAAG,OAAIA,EAAIC,aAAa,aAAcwT,EAAK8xB,yBAAyBrlC,KAAO,GAAG,KAGnGrB,EAAAA,cAAA,OAAK1B,UAAW,IACd0B,EAAAA,cAAA,SAAOzB,QAAQ,oBAAoBqW,EAAK+xB,cACxC3mC,EAAAA,cAAA,OAAK1B,UAAW2C,IACdjB,EAAAA,cAACgJ,EAAAA,EAAY,CACXxG,SArblB,SAAuBokC,GACrBhH,EAAgB,MAChBY,EAAkB,IAClBhB,EAAgBoH,GAAWrH,GAC3BsG,YAAW,WACTzB,IAAsB,EACxB,GAAG,KACL,EA+akBn7B,gBAzdlB,SAAoB9B,GAClB,OAAIw4B,GACFC,EAAgB,MACT,IAEJz4B,GAAkBnE,MAATmE,GAA+B,IAATA,GAAwB,aAATA,GAOrD,SAAwBA,IACtB2+B,EAAAA,GAAAA,IAAqB3+B,GAAOsjB,MAAK,SAAAsb,GAC/B,GAAIA,EAAY,CACd,IAAIC,EAAgBvF,EAAmBsF,GAEvC,OADAvG,EAAgBwG,GACTA,CACT,CACF,GACF,CAZEa,CAAe1/B,GACPrC,MAAMiX,QAAQwjB,IAAiBA,GAAiB,IAH/C,EAIX,EAgdkBh4B,QAASA,EACT3G,GAAG,oBACH0B,YAAaq9B,EAAe/qB,EAAK+tB,iBAAmB/tB,EAAKkyB,mBACzDnY,iBAAiB,EACjBp2B,MAAO8mC,IAA4BM,GAA8B,MACjE/8B,QAAS,kBAAMogC,CAAO,IAExBhjC,EAAAA,cAAA,UACE1B,UAAW2C,GACXklC,WAAY7D,EAAa,WACzB72B,QAAS62B,EAAa,WACtBhwC,KAAK,UAEL0N,EAAAA,cAACc,EAAAA,EAAQ,CACPC,IAAK6T,EAAKwxB,gBAAgBplC,IAC1B1C,UAAW2C,GACXC,gBAAiB,SAAAC,GAAG,OAAIA,EAAIC,aAAa,aAAcwT,EAAKwxB,gBAAgB/kC,KAAO,GAAG,KAG1FrB,EAAAA,cAAA,UACE1B,UAAW2C,GACXL,GAAI,8BACJulC,WAAY,WACV/B,IAAsB,SAAAiC,GAAS,OAAKA,CAAS,GAC/C,EACA56B,QAAS,WACP24B,IAAsB,SAAAiC,GAAS,OAAKA,CAAS,GAC/C,EACA/zC,KAAK,UAEL0N,EAAAA,cAACc,EAAAA,EAAQ,CACPC,IAAK6T,EAAK0xB,oBAAoBtlC,IAC9B1C,UAAW2C,GACXC,gBAAiB,SAAAC,GAAG,OAAIA,EAAIC,aAAa,aAAcwT,EAAKmyB,mBAAqB,GAAG,MAIzFxG,EAAiBvgC,EAAAA,cAAA,OAAK1B,UAAW2C,IAAsBs/B,GAAwB,KAChFvgC,EAAAA,cAAA,SACE1N,KAAK,SACLE,KAAK,cACL+F,MACGonC,EAEG/qB,EAAK+tB,iBADLpD,GAAgBA,EAAazG,GAAK,IAAMyG,EAAa1F,KAAO,IAAM0F,EAAawB,cAM3F/gC,EAAAA,cAAA,OAAK1B,UDziBC,2CC0iBJ0B,EAAAA,cAAA,OAAK1B,UDziBI,gDC0iBP0B,EAAAA,cAAA,OAAK1B,UDpiBc,4DCqiBjB0B,EAAAA,cAAA,SAAO1B,UAAY2hC,EAAuCh/B,GAAvBA,IAChC2T,EAAKoyB,wBAERhnC,EAAAA,cAAA,SAAO1B,UDljBD,iDCmjBJ0B,EAAAA,cAAA,SAAOxN,KAAK,WAAWF,KAAK,WAAWijB,QAAS0qB,EAAez9B,SAAU,SAAA3N,GArIzFqrC,GAAkBD,EAqI6F,IAC/FjgC,EAAAA,cAAA,QAAM1B,UAAW2C,wFAEnBjB,EAAAA,cAAA,SAAO1B,UAAW2hC,EAAgBh/B,GAAuBA,IACtD2T,EAAKqyB,uBAGVjnC,EAAAA,cAAA,OAAK1B,UAAYwkC,EDljBL,oDAFP,8CCqjBH9iC,EAAAA,cAAA,OAAK1B,UD/lBM,sDCgmBT0B,EAAAA,cAACc,EAAAA,EAAQ,CACPC,IAAK6T,EAAKsyB,aAAalmC,IACvB1C,UAAW2C,GACXC,gBAAiB,SAAAC,GAAG,OAAIA,EAAIC,aAAa,aAAcwT,EAAKsyB,aAAa7lC,KAAO,GAAG,IAErFrB,EAAAA,cAAC6yB,GAAS,CACRjyB,GAAG,OACHpO,KAAK,OACL2P,UAAU,EACVmsB,QAASA,EACTD,eAAe,IAAI5uB,MAAO0nC,qBAC1BxY,iBAAiB,KAGrB3uB,EAAAA,cAAA,QAAM1B,UDxkBF,+CCwkB+BsW,EAAKwyB,aACxCpnC,EAAAA,cAAA,OAAK1B,UDtkBE,kDCukBL0B,EAAAA,cAACc,EAAAA,EAAQ,CACPC,IAAK6T,EAAKyyB,UAAUrmC,IACpB1C,UAAW2C,GACXC,gBAAiB,SAAAC,GAAG,OAAIA,EAAIC,aAAa,aAAcwT,EAAKyyB,UAAUhmC,KAAO,GAAG,IAElFrB,EAAAA,cAAC8yB,GAAS,CACRlyB,GAAG,OACHpO,KAAK,OACL2P,UAAU,EACVmsB,QAASA,EACTkC,UAAWA,EACX7B,iBAAiB,QAM3B3uB,EAAAA,cAAA,OAAK1B,UDloBG,6CCmoBN0B,EAAAA,cAAA,UAAQ1N,KAAK,UAAUsiB,EAAKypB,uBAKnCyB,EACC9/B,EAAAA,cAAA,OAAK1B,UDlnBmB,yDCmnBtB0B,EAAAA,cAAA,SAAI4U,EAAKwtB,+BAET,KAGV,ECpoBAxyB,GAAAA,YAAuBC,EAAAA,OAAAA,EA2RvB,SAASy3B,GACPnpC,EACAopC,EACAC,EACA5yB,EACA6yB,EACAC,GAEA,IAIIC,EACAC,EALE12B,EAAY,OAAUnR,GAAO8nC,cAAc12B,IAAG,KAAKpR,GAAO8nC,cAAcz2B,MAAK,KAAKrR,GAAO8nC,cAAcx2B,KAAI,IAMjH,GALIk2B,GACFA,EAAeh2B,SAIbk2B,EAAc,CAUhB,GATAA,EAAaK,SAAS3pC,KAAI,SAAAnI,GACxB,GAAIA,EAAE,GAAG+xC,uBAAwB,CAC/B,IAAIC,EAAKhyC,EAAE,GAAG+xC,uBAAuBt1C,OAChCk1C,IACHA,EAAkB3xC,EAAE,GAAG+xC,uBAAuB,IAEhDH,EAAgB5xC,EAAE,GAAG+xC,uBAAuBC,EAAK,EACnD,CACF,IACkB,aAAdR,EAA2B,CAC7B,IAAMh2B,EAAgBxG,SAASyG,cAAc,OAK7C,OAJAD,EAAczQ,IAAM6T,EAAKqzB,mBAAmBjnC,IAC5CwQ,EAAcnQ,IAAMuT,EAAKqzB,mBAAmB5mC,IAC5CmQ,EAAcd,MAAMgB,MAAQ,OAC5BF,EAAcd,MAAMiB,OAAS,OACtB,IAAI/B,GAAAA,OAAgB,CACzBoC,MAAOd,EACP1J,QAASgK,IAERS,UAAU,CAAC01B,EAAgB,GAAIA,EAAgB,KAC/Cv1B,MAAMjU,EACX,CACE,IAAM+pC,EAAgBl9B,SAASyG,cAAc,OAK7C,OAJAy2B,EAAcnnC,IAAM6T,EAAKuzB,iBAAiBnnC,IAC1CknC,EAAc7mC,IAAMuT,EAAKuzB,iBAAiB9mC,IAC1C6mC,EAAcx3B,MAAMgB,MAAQ,OAC5Bw2B,EAAcx3B,MAAMiB,OAAS,OACtB,IAAI/B,GAAAA,OAAgB,CACzBoC,MAAOd,EACP1J,QAAS0gC,IAERj2B,UAAU,CAAC21B,EAAc,GAAIA,EAAc,KAC3Cx1B,MAAMjU,EAEb,CACF,CAEA,OAvUiD,SAAH0B,GAA+C,IAAzCiQ,EAAWjQ,EAAXiQ,YAAa8E,EAAI/U,EAAJ+U,KAAMijB,EAAch4B,EAAdg4B,eACrElwB,GAAsBC,EAAAA,EAAAA,UAAS,MAAxBzJ,EAAGwJ,EAAA,GAAEoI,EAAMpI,EAAA,GAElBG,GAA8CF,EAAAA,EAAAA,YAAvC+/B,EAAe7/B,EAAA,GAAEsgC,EAAkBtgC,EAAA,GAC1CE,GAA0CJ,EAAAA,EAAAA,YAAnCggC,EAAa5/B,EAAA,GAAEqgC,EAAgBrgC,EAAA,GAEtCE,GAAgDN,EAAAA,EAAAA,UAAS,UAAlD8/B,EAAgBx/B,EAAA,GAAEogC,EAAmBpgC,EAAA,GAC5CG,GAAkCT,EAAAA,EAAAA,UAAS,MAApC2gC,EAASlgC,EAAA,GAAEmgC,EAAYngC,EAAA,GAE9B6tB,GAAgCtuB,EAAAA,EAAAA,UAAS,IAAlC6gC,EAAQvS,EAAA,GAAEwS,EAAWxS,EAAA,GACtB9lB,GAASC,EAAAA,EAAAA,UACTlE,GAAWP,EAAAA,EAAAA,MAiCjB,SAAS+8B,EAAiBC,EAA2BC,EAA+BC,GAClF,IAAIrB,EAAeqB,EAAcv+B,MAC/B,SAAA/C,GAAO,OACLA,EAAQuhC,UAAYF,GAA0BrhC,EAAQwhC,WAAaxhC,EAAQwhC,WAAaH,CAAsB,IAE9GI,EAAY,EACZC,EAAY,EAChBzB,EAAaK,SAAS3pC,KAAI,SAACgrC,EAAS3vC,GAC9B,2BAA4B2vC,EAAQ,KCxEvC,SAAgChrC,EAAmBirC,EAAaC,GACjElrC,EAAImrC,UAAUD,KAChBlrC,EAAIorC,YAAYF,GAChBlrC,EAAIqrC,aAAaH,IAEnBlrC,EAAIsrC,UAAUJ,EAAO,CACnB/2C,KAAM,UACNsiB,KAAM,CACJtiB,KAAM,UACNo3C,WAAY,CAAC,EACbC,SAAU,CACRr3C,KAAM,aACN82C,YAAaA,MAInBjrC,EAAIyrC,SAAS,CACXhpC,GAAIyoC,EACJ/2C,KAAM,OACNmvB,OAAQ4nB,EACRQ,OAAQ,CACN,YAAa,QACb,WAAY,SAEdC,MAAO,CACL,aAAc,UACd,aAAc,EACd,iBAAkB,CAAC,EAAG,KAG5B,CD2CQC,CAAuBnB,EAAaO,EAAQ,GAAGa,uBAAwB,aAAef,GACtFA,KACS,2BAA4BE,EAAQ,MC3C9C,SAA4BhrC,EAAmBirC,EAAaC,GAC7DlrC,EAAImrC,UAAUD,KAChBlrC,EAAIorC,YAAYF,GAChBlrC,EAAIqrC,aAAaH,IAGnBD,EAAYjrC,KAAI,SAACnI,EAAGwD,GACdxD,EAAE,GAAK,KACTyqB,QAAQC,IAAI1qB,EAAE,IACdyqB,QAAQC,IAAIlnB,GAEhB,IACA2E,EAAIsrC,UAAUJ,EAAO,CACnB/2C,KAAM,UACNsiB,KAAM,CACJtiB,KAAM,UACNo3C,WAAY,CAAC,EACbC,SAAU,CACRr3C,KAAM,aACN82C,YAAaA,MAInBjrC,EAAIyrC,SAAS,CACXhpC,GAAIyoC,EACJ/2C,KAAM,OACNmvB,OAAQ4nB,EACRQ,OAAQ,CACN,YAAa,QACb,WAAY,SAEdC,MAAO,CACL,aAAc,OACd,aAAc,IAGpB,CDQQG,CAAmBrB,EAAaO,EAAQ,GAAGpB,uBAAwB,QAAUmB,GAC7EA,IAEJ,IACAn5B,EAAO64B,GACP,IAAMsB,EAAqB5C,GACzBsB,EACAjB,EACA,YACA/yB,EACA6yB,EACAoB,GAEFT,EAAmB8B,GACnB,IAAMC,EAAmB7C,GACvBsB,EACAhB,EACA,UACAhzB,EACA6yB,EACAoB,GAEFR,EAAiB8B,GACjBp6B,EAAO64B,EACT,CA4BA,SAASwB,EAAoBC,GAC3B,OAAOA,EAASnsC,QAAQ,KAAM,IAAIA,QAAQ,IAAK,KAAKA,QAAQ,IAAK,KAAKA,QAAQ,IAAK,IAAIqgB,MAAM,KAAK,EACpG,CAmBA,OApHAjO,EAAAA,EAAAA,kBAAgB,WACdV,GAAAA,YAAuBE,EACvB,IAAMS,EAAU,IAAIX,GAAAA,IAAa,CAC/BY,UAAWJ,EAAOK,QAClBC,MAAO,qCACPC,OAAQ,CAAC,SAAU,WACnBI,KAAM,KAERhB,EAAOQ,EACT,GAAG,KAEH9H,EAAAA,EAAAA,YAAU,WAIV,GAAG,CAACtK,IAsGF6B,EAAAA,cAAA,OAAK1B,UFvIuB,wDEuIesC,GAAG,sBAC3CzC,EACC6B,EAAAA,cAACsqC,GAAqB,CACpB11B,KAAMA,EACNoqB,iBAxGR,SAAyBuL,GACvB/B,EAAa+B,GACb5B,EAAiBxqC,EAAKupC,EAAkB6C,GACnCp+B,EAKHhO,EAAIqsC,MAAM,CACR75B,OAAQ,CAAC,SAAU,aALrBxS,EAAIqsC,MAAM,CACR75B,OAAQ,CAAC,SAAW,GAAK,YAO/B,EA6FQknB,eAAgBA,IAEhB,KACJ73B,EAAAA,cAAA,OAAKwS,IAAKpC,EAAQ9R,UFxIP,yCEwI8BsC,GAAI,gBAC3CZ,EAAAA,cAAA,OAAK1B,UAAWiqC,EAAYtnC,8DAA2DA,IACpFsnC,GACCA,EAAUpqC,KAAI,SAACnI,EAAGwD,GAChB,OACEwG,EAAAA,cAAA,OAAK1B,UFrJa,0DEqJ2BsC,GAAI,iBAAmBpH,GAClEwG,EAAAA,cAAA,OAAK1B,UFvJU,0DEwJb0B,EAAAA,cAAA,UACiB,UAAdhK,EAAE+yC,SACCn0B,EAAK61B,iBACS,cAAdz0C,EAAE+yC,SACAn0B,EAAK81B,kBACL91B,EAAK+1B,qBAEb3qC,EAAAA,cAAA,OAAK1B,UFvIH,gDE8EKqnC,EA2DH/wB,EAAK+wB,eA3DciF,EA4DnB50C,EAAE60C,aAAaC,cA5DmBnE,EA6DlC/xB,EAAK+xB,aA7D2CnL,EA8DhDxlC,EAAE60C,aAAaE,YA5DjCpF,EACA,KACAiF,EAAcrsB,MAAM,KAAK,GAAGA,MAAM,IAAK,GAAGzG,MAAM,EAAG,GAAGtX,KAAK,KAF3DmlC,MAKAgB,EACA,KACAnL,EAAYjd,MAAM,KAAK,GAAGA,MAAM,IAAK,GAAGzG,MAAM,EAAG,GAAGtX,KAAK,QAyD7CR,EAAAA,cAAA,OAAK1B,UF1KiB,iEE2KnBtI,EAAE8xC,SAAS3pC,KAAI,SAAA6sC,GACd,OAAOA,EAAQ,GAAGC,mBAChBjrC,EAAAA,cAAA,OAAK1B,UAAW2C,uEACb+pC,EAAQ,GAAGtM,SAAS,GACnB1+B,EAAAA,cAAA,OAAK1B,UAAW2C,GAAiBF,IAAKiqC,EAAQ,GAAGtM,SAAS,GAAG19B,MAE7DhB,EAAAA,cAAA,OAAK1B,UAAW2C,IAAkB+pC,EAAQ,GAAGC,mBAAmBC,KAAKC,OAAO,MAG9E,IACN,IACAnrC,EAAAA,cAAA,OAAK1B,UF7LH,+CE8LC8rC,EAAoBp0C,EAAE60C,aAAaO,UAAYx2B,EAAKy2B,cAGzDrrC,EAAAA,cAAA,OACE1B,UACEopC,GAAoB1xC,EAAE+yC,UAAarB,GAAoB1xC,EAAE+yC,UAAYN,GAAYf,EF7KpF,2CA0BO,mDEwJL1xC,EAAE8xC,SAAS3pC,KAAI,SAAA6sC,GAAY,IAADM,EAAAC,EAAAC,EAAAC,EAAAC,EACzB,OACE1rC,EAAAA,cAAA,OAAK1B,UF7JG,yDE8JN0B,EAAAA,cAAA,OAAK1B,UF7JK,6DE8JR0B,EAAAA,cAAA,WACGgrC,EAAQ,GAAGC,mBACRD,EAAQ,GAAGC,mBAAmBU,UAAUC,KAAKrtB,MAAM,KAAK,GACrDA,MAAM,IAAK,GACXzG,MAAM,EAAG,GACTtX,KAAK,KACRwqC,EAAQ,GAAGa,mBAAmBF,UAAUC,KAAKrtB,MAAM,KAAK,GACrDA,MAAM,IAAK,GACXzG,MAAM,EAAG,GACTtX,KAAK,MAEdR,EAAAA,cAAA,OAAK1B,UAAW2C,IACb+pC,EAAQ,GAAGC,oBAAsBD,EAAQ,GAAGtM,SAAS,GACpD1+B,EAAAA,cAAA,OAAK1B,UAAW2C,GAAiBF,IAAKiqC,EAAQ,GAAGtM,SAAS,GAAG19B,MAC3DgqC,EAAQ,GAAGa,mBACb7rC,EAAAA,cAAA,OACEe,IAAK6T,EAAKk3B,gBAAgB9qC,IAC1BK,IAAKuT,EAAKk3B,gBAAgBzqC,IAC1B/C,UAAW2C,qDAGbjB,EAAAA,cAAA,OAAK1B,UAAW2C,IAAkB+pC,EAAQ,GAAGC,mBAAmBC,KAAKC,OAAO,OAIlFnrC,EAAAA,cAAA,OAAK1B,UFtMR,iDEuMG0B,EAAAA,cAAA,OAAK1B,UAAW,IACd0B,EAAAA,cAAA,OAAK1B,UF1MR,kDE2MM0sC,EAAQ,GAAGC,oBAC+B,QAAvCK,EAAAN,EAAQ,GAAGC,mBAAmBU,iBAAS,IAAAL,GAAW,QAAXC,EAAvCD,EAAyCS,iBAAS,IAAAR,OAAX,EAAvCA,EAAoD1R,OACpDmR,EAAQ,GAAGC,mBAAmBC,KAAKrR,KACnCmR,EAAQ,GAAGa,mBAAmBF,UAAUK,KAAKnS,MAEnD75B,EAAAA,cAAA,OAAK1B,UFlNH,uDEmNC0sC,EAAQ,GAAGC,mBACRr2B,EAAKq3B,eAAiB,IAAMjB,EAAQ,GAAGC,mBAAmBiB,UAAUrS,KACpEjlB,EAAKq3B,eAAiB,IAAMjB,EAAQ,GAAGa,mBAAmBM,QAAQH,KAAKnS,MAG7E75B,EAAAA,cAAA,OAAK1B,UFvNJ,sDEwNE0sC,EAAQ,GAAGC,mBApHxC,SAAmCmB,EAAqBC,EAAYC,EAAyBjC,EAAUvJ,GACrG,OACEsL,EACA,IACAC,EACA,IACAC,EACA,IACAlC,EAAoBC,GACpBz1B,EAAKy2B,YACL,IACAz2B,EAAK23B,2BACL,IACAzL,CAEJ,CAsGgC0L,CACE53B,EAAKw3B,oBACLpB,EAAQ,GAAGC,mBAAmBC,KAAKC,OACnCv2B,EAAK03B,wBACLtB,EAAQ,GAAGC,mBAAmBG,SAC9BJ,EAAQ,GAAGC,mBAAmBkB,QAAQH,KAClChB,EAAQ,GAAGC,mBAAmBkB,QAAQH,KAAKnS,KAC3CmR,EAAQ,GAAGC,mBAAmBkB,QAAQJ,UAAUlS,MAEtDjlB,EAAK63B,oBACL,IACArC,EAAoBY,EAAQ,GAAGa,mBAAmBT,UAClDx2B,EAAKy2B,YACL,IACAz2B,EAAK23B,2BACL,KAC6B,QAD1Bf,EACHR,EAAQ,GAAGa,0BAAkB,IAAAL,GAAS,QAATC,EAA7BD,EAA+BW,eAAO,IAAAV,GAAM,QAANC,EAAtCD,EAAwCO,YAAI,IAAAN,OAAf,EAA7BA,EAA8C7R,QAK5D,KAEF75B,EAAAA,cAAA,WACEA,EAAAA,cAAA,UAAQ1B,UFlRL,+CEkRkCmN,QAAS,SAAA5W,GA3KhE,IAAiCk0C,KA2K4D/yC,EAAE+yC,WA1K7ErB,GACdY,EAAoBS,GACpBJ,EAAiBxqC,EAAK4qC,EAAUR,IAG9BG,EADED,GAAYf,EACF,GAEAA,EAmKsF,GACpF1nC,EAAAA,cAACc,EAAAA,EAAQ,CACPC,IAAK6T,EAAK83B,2BAA2B1rC,IACrCK,IAAKuT,EAAK83B,2BAA2BrrC,IACrC/C,UACEopC,GAAoB1xC,EAAE+yC,UAAYN,GAAYf,EAC1CzmC,sDACAA,GAENC,gBAAiB,SAAAC,GAAG,OAAIA,EAAIC,aAAa,cAAe,OAAO,OAvKrF,IAAyBukC,EAAgBiF,EAAejE,EAAcnL,CA6K5D,MAKZ,EEvPA,GAjCiD,SAAH37B,GAAkB,IAAZ+U,EAAI/U,EAAJ+U,KAC5CzhB,GAAYkd,EAAAA,EAAAA,UAKlB,IAHE1I,EAAOpP,EAAOo0C,EAGVC,GAHJjlC,GAA0BC,EAAAA,EAAAA,UAAS,GAA5BrP,EAAKoP,EAAA,GAAEglC,EAAQhlC,EAAA,GACf,kBAAMglC,EAASp0C,EAAQ,EAAE,GAclC,OAXAkQ,EAAAA,EAAAA,YAAU,WAER,GADuBuC,SAASC,eAAe,mBAC/C,CAGA,IAAM4hC,EAAiB7hC,SAASC,eAAe,kBAC1C4hC,GAA8C,IAA5BA,EAAeC,WACpCF,GAHF,CAKF,IAGE5sC,EAAAA,cAAA,OAAKY,GAAG,GAAGtC,UAAU,IAAIkU,IAAKrf,GAC5B6M,EAAAA,cAAA,UACE1N,KAAK,kBACLsO,GAAI,cACJU,wBAAyB,CACvBtC,OAAQ,6DAGZgB,EAAAA,cAAA,UAAQe,IAAK6T,EAAK7T,IAAKmmB,OAAO,EAAM50B,KAAK,kBAAkBsO,GAAI,oBAC/DZ,EAAAA,cAAA,OAAKY,GAAG,mBAGd,ECbA,GAzB4C,SAAHf,GAAkB,IAAZ+U,EAAI/U,EAAJ+U,KAkB7C,OAjBAnM,EAAAA,EAAAA,YAAU,WACR,GAAIsC,OACF,GAAIC,SAAS+hC,KAAKC,aAAc,CAC9B,IAAIC,EAAsBjiC,SAASyG,cAAc,UACjDw7B,EAAoB36C,KAAO,kBAC3B26C,EAAoB/lB,OAAQ,EAC5B+lB,EAAoBlsC,IAAM,mCAC1BiK,SAAS4c,qBAAqB,QAAQ,GAAGpD,YAAYyoB,EACvD,KAAO,CACKjiC,SAAS4c,qBAAqB,iBAAiB,GACrDklB,UACF,gLACF9hC,SAASC,eAAe,aAAayF,MAAMsB,MAAQ,QACnDhH,SAASC,eAAe,aAAayF,MAAMw8B,gBAAkB,KAC/D,CAEJ,IAEEltC,EAAAA,cAAA,OAAK1B,UC1BmB,+CD2BtB0B,EAAAA,cAAA,OAAKsB,wBAAyB,CAAEtC,OAAQ4V,EAAKu4B,aAGnD,EEwHA,GA9IuD,WACrD,IAAAxlC,GAAwBC,EAAAA,EAAAA,UAAS,MAA1B4L,EAAI7L,EAAA,GAAE8L,EAAO9L,EAAA,GACpBG,GAA4BF,EAAAA,EAAAA,UAAS,MAA9B8L,EAAQ5L,EAAA,GAAE6L,EAAO7L,EAAA,GACxBE,GAAkCJ,EAAAA,EAAAA,UAAS,MAApCwlC,EAASplC,EAAA,GAAEqlC,EAAYrlC,EAAA,IAE9BS,EAAAA,EAAAA,YAAU,WACR,IAAI7H,EACJ,IAAKwsC,GACCriC,OAAOmH,SAASo7B,KAAM,CACxB,IAAM5M,EAAc31B,OAAOmH,SAASo7B,KAChC5M,IACF9/B,EAAK8/B,EAAYniB,MAAM,KAAK,GAC5B8uB,EAAazsC,GAEjB,CAEJ,GAAG,CAACwsC,KAEJ3kC,EAAAA,EAAAA,YAAU,WACR,GAAIiL,EAAU,CACZ,IAAME,EAAaF,EAASI,YAC5BL,EAAQG,EACV,CACF,GAAG,CAACF,IAEJ,IAAQkB,GAASC,EAAAA,GAAAA,GAAqB,CACpCC,UAAWs4B,EACXjmC,MAAM,0DAEoBpH,KAAAA,OAAa,wBAAwBqtC,EAAS,8jDAsExEp4B,MAAOjV,KAAAA,cA1ED6U,KAmFR,OANIA,GACEA,GAAQlB,GACVC,EAAQiB,GAKVpB,GACExT,EAAAA,cAAA,OAAK1B,UCtHY,gDDuHf0B,EAAAA,cAAA,MAAI1B,UCjHqB,0DDkHtBkV,GACCA,EAAKpP,MAAMjG,KAAI,SAAAoF,GACb,OACEvD,EAAAA,cAAA,MAAIrL,IAAK4O,EAAK3C,GAAItC,UCpHT,kDDqHP0B,EAAAA,cAAA,OAAK1B,UCvHG,mDDwHN0B,EAAAA,cAAA,OAAK1B,UCzHF,+CDyH+ByC,IAAKwC,EAAKH,UAAUpC,IAAKK,IAAKkC,EAAKH,UAAU/B,OAIvF,KAEJrB,EAAAA,cAAA,OAAK1B,UCvHS,+CDwHZ0B,EAAAA,cAAA,OAAK1B,UC5Hc,sDD6HjB0B,EAAAA,cAAA,OAAKe,IAAKyS,EAAKpQ,UAAUpC,IAAKK,IAAKmS,EAAKpQ,UAAU/B,OAEpDrB,EAAAA,cAAA,MAAI1B,UC5HK,4CD4HqBkV,EAAK1T,QAGrCE,EAAAA,cAAA,OACE1B,UClIoB,sDDmIpBgD,wBAAyB,CACvBtC,OAAQuC,IAAaiS,EAAK6B,qBAG9BrV,EAAAA,cAAC4rB,GAAkB,CAAChX,KAAMpB,EAAK7I,cAIvC,EEnJW4iC,GAAgB,iECmC3B,GA7B6D,SAAH1tC,GAAkB,IAAZ+U,EAAI/U,EAAJ+U,KAoB9D,OAnBAnM,EAAAA,EAAAA,YAAU,WACR,GAAsB,oBAAXsC,OAAX,CAGA,IAAMkc,EAASjc,SAASyG,cAAc,UACtCzG,SAAS4c,qBAAqB,QAAQ,GAAGpD,YAAYyC,GACrDA,EAAOC,OAAQ,EACfD,EAAO30B,KAAO,kBACd20B,EAAOlmB,IAAG,+EAAkF6T,EAAKI,KALjG,CAMF,GAAG,KAEHvM,EAAAA,EAAAA,YAAU,WACc,oBAAXsC,SAGSC,SAASC,eAAe,oBAChCuiC,cAAc98B,MAAM+8B,OAAS,IAC3C,GAAG,IAGDztC,EAAAA,cAAA,WACEA,EAAAA,cAAA,MAAI1B,UD7BS,0DC6BiBsW,EAAK9U,OACnCE,EAAAA,cAAA,OAAK1B,UAAW2C,GAAsBL,GAAG,qBACzCZ,EAAAA,cAAA,OAAK1B,UAAW2C,GAAsBL,GAAG,kBAG/C,ECjCW8sC,GAAW,iCAGXC,GAAgB,sCCkK3B,GA7JsC,SAAH9tC,GAAkB,IAAZ+U,EAAI/U,EAAJ+U,KACvCjN,GAAsCC,EAAAA,EAAAA,WAAS,GAAxCgmC,EAAWjmC,EAAA,GAAEkmC,EAAclmC,EAAA,GAuF5BmmC,EAAmB,SAAC1qC,EAAW4O,EAAO+7B,EAAQC,GAClD,OACEhuC,EAAAA,cAAA,OAAK1B,UD5FU,iCC6FS,QAArB8E,EAAUzC,OACTX,EAAAA,cAACc,EAAAA,EAAQ,CACPxC,UD7FW,kCC8FXyC,IAAKqC,EAAUpC,IACf,eAAa,EACbE,gBAAiB,SAAAC,GAAG,OAAIA,EAAI8sC,cAAc,QAAQ7sC,aAAa,OAAQ4sC,EAAQh8B,EAAMk8B,IAAMH,EAAOG,IAAI,IAGxGluC,EAAAA,cAAA,OAAKe,IAAKqC,EAAUpC,IAAKK,IAAK+B,EAAU/B,KAAO,GAAI/C,UDpG1C,8BCoGmE,eAAa,IAIjG,EAEA,OACE0B,EAAAA,cAAA,OAAK1B,UD7Gc,mCCMA,SACnBwB,EACAsD,EACAq3B,EACAD,EACAxoB,EACAm8B,EACAC,EACAC,EACAL,EACAM,GAEA,OAAIF,EAEApuC,EAAAA,cAAA,UACE1B,UDxBsB,2CCyBtBiwC,YAAa,kBAAMD,GAAS,EAAK,EACjCE,aAAc,kBAAMF,GAAS,EAAM,GAEnCtuC,EAAAA,cAAA,KACEwB,KACEi5B,GAAgBA,EAAa,GACK,eAA9BA,EAAa,GAAGta,WAA2B,IACrCsa,EAAa,GAAGn6B,KACpB,IACFk6B,GAEE,IAERl8B,UAAY+vC,EDpCM,yCCoCOptC,GACzBkC,OAAQs3B,GAAgBA,EAAa,GAAK,QAAUD,EAAe,SAAW,SAE5E6T,EAEwB,QAAtBA,EAAW1tC,OACbX,EAAAA,cAACc,EAAAA,EAAQ,CACPC,IAAKstC,EAAWrtC,IAChB1C,UAAW2C,GACX,eAAa,EACbC,gBAAiB,SAAAC,GAAG,OAAIA,EAAIC,aAAa,MAAOitC,EAAWhtC,KAAO,GAAG,IAGvErB,EAAAA,cAAA,OAAKe,IAAKstC,EAAWrtC,IAAKK,IAAKgtC,EAAWhtC,KAAO,GAAI/C,UAAW2C,KAThEjB,EAAAA,cAAAA,EAAAA,SAAA,QAgBNA,EAAAA,cAAA,UACE1B,UD5DmB,wCC6DnBoS,OACEsB,aAAK,EAALA,EAAOk8B,MAAO,CACZhB,gBAAiBc,EAAQG,EAAWD,IAAMl8B,EAAMk8B,IAChDO,OAAQT,GAAK,aAAiBh8B,EAAMk8B,KAGxCK,YAAa,kBAAMD,GAAS,EAAK,EACjCE,aAAc,kBAAMF,GAAS,EAAM,GAEnCtuC,EAAAA,cAAA,KACEwB,KACEi5B,GAAgBA,EAAa,GACK,eAA9BA,EAAa,GAAGta,WAA2B,IACrCsa,EAAa,GAAGn6B,KACpB,IACFk6B,GAEE,IAERl8B,UAAW2C,GACXkC,OAAQs3B,GAAgBA,EAAa,GAAK,QAAUD,EAAe,SAAW,SAE7Ep3B,GAAa0qC,EAAiB1qC,EAAW4O,EAAOm8B,EAAYH,GAC7DhuC,EAAAA,cAAA,OAAK1B,UD5EQ,qCC6EX0B,EAAAA,cAAA,OAAK1B,UD5EA,8BC4EyBoS,MAAO,CAAEsB,MAAOg8B,EAAQh8B,aAAK,EAALA,EAAOk8B,IAAMC,aAAU,EAAVA,EAAYD,MAC5EpuC,KAOf,CAqBK4uC,CACC95B,EAAK9U,MACL8U,EAAKxR,UACLwR,EAAK+5B,iBACL/5B,EAAKg6B,iBACLh6B,EAAK5C,MACL4C,EAAKu5B,WACLv5B,EAAKw5B,YACLx5B,EAAKy5B,WACLT,EACAC,GAIR,EC5HA,GAPiC,SAAU74B,EAAO65B,GAChD9jC,OAAO+jC,UAAU95B,MAAQA,EACzBjK,OAAO+jC,UAAUC,UAAU,iBAAkBF,EAAU,YACvD9jC,OAAO+jC,UAAUE,kBAAoB,8CACrCjkC,OAAO+jC,UAAUG,uBAAyB,yCAC5C,EC0CA,GArCkD,SAAHpvC,GAAkB,IAAZ+U,EAAI/U,EAAJ+U,KACnDjN,GAAwCC,EAAAA,EAAAA,WAAS,GAA1CsnC,EAAYvnC,EAAA,GAAEwnC,EAAexnC,EAAA,GA4BpC,OA1BAc,EAAAA,EAAAA,YAAU,WACR,GAAIsC,QAAUA,OAAOC,WACdkkC,EAAc,CACjB,IAAIE,EAAmBpkC,SAASyG,cAAc,QAC9C29B,EAAiB5tC,KAAO,0EACxB4tC,EAAiB98C,KAAO,WACxB88C,EAAiBC,IAAM,aACvBrkC,SAAS4c,qBAAqB,QAAQ,GAAGpD,YAAY4qB,GACrD,IAAIE,EAAetkC,SAASyG,cAAc,UAC1C69B,EAAah9C,KAAO,kBACpBg9C,EAAavuC,IAAM,kEACnBiK,SAAS4c,qBAAqB,QAAQ,GAAGpD,YAAY8qB,GACrDA,EAAahoB,OAAS,WACpB,IAAIioB,EAAkBvkC,SAASyG,cAAc,UAC7C89B,EAAgBj9C,KAAO,kBACvBi9C,EAAgBxuC,IAAM,qEACtBwuC,EAAgB3uC,GAAK,uBACrBoK,SAAS4c,qBAAqB,QAAQ,GAAGpD,YAAY+qB,GACrDA,EAAgBjoB,OAAS,WACvB6nB,GAAgB,EAClB,CACF,CACF,CAEJ,GAAG,IAGDnvC,EAAAA,cAAA,OAAK1B,UCtCoB,qDDsCesC,GAAG,mBACzCZ,EAAAA,cAAA,OAAKY,GAAG,kBACPsuC,EAAelvC,EAAAA,cAAA,cAASwvC,GAAyB56B,EAAKI,MAAOJ,EAAK66B,kBAA6B,KAGtG,EEuFMC,GAAyB,SAAAhgC,GAAO,OACpCnO,IAAamO,EAAS,CACpBmR,YAAatf,IAAAA,SAAsBsf,YAAYtsB,OAAO,CAAC,QAAQA,OAAO,CAAC,MACvEusB,kBAAiBrtB,OAAAyE,OAAA,GACZqJ,IAAAA,SAAsBuf,kBAAkB,CAC3C6uB,KAAMpuC,IAAAA,SAAsBuf,kBAAkB6uB,KAAO,IAAIp7C,OAAO,CAAC,MAAO,MAAO,QAAS,SAAU,UAClGmB,GAAI6L,IAAAA,SAAsBuf,kBAAkBprB,GAAK,IAAInB,OAAO,CAAC,UAC7Dq7C,OAAQruC,IAAAA,SAAsBuf,kBAAkB8uB,OAAS,IAAIr7C,OAAO,CAAC,QAAS,WAC9Es7C,OAAQtuC,IAAAA,SAAsBuf,kBAAkB+uB,OAAS,IAAIt7C,OAAO,CAAC,QAAS,QAAS,WACvFu7C,IAAKvuC,IAAAA,SAAsBuf,kBAAkBgvB,IAAM,IAAIv7C,OAAO,CAAC,QAAS,QAAS,WACjFw7C,IAAKxuC,IAAAA,SAAsBuf,kBAAkBivB,IAAM,IAAIx7C,OAAO,CAAC,QAAS,QAAS,WACjF60B,MAAO7nB,IAAAA,SAAsBuf,kBAAkBsI,MAAQ,IAAI70B,OAAO,CAAC,QAAS,QAAS,WACrFy7C,IAAKzuC,IAAAA,SAAsBuf,kBAAkBkvB,IAAM,IAAIz7C,OAAO,CAAC,UAC/D07C,IAAK1uC,IAAAA,SAAsBuf,kBAAkBmvB,IAAM,IAAI17C,OAAO,CAAC,UAC/D27C,IAAK3uC,IAAAA,SAAsBuf,kBAAkBovB,IAAM,IAAI37C,OAAO,CAAC,UAC/D47C,YAAa5uC,IAAAA,SAAsBuf,kBAAkBqvB,YAAc,IAAI57C,OAAO,CAAC,UAC/E67C,KAAM7uC,IAAAA,SAAsBuf,kBAAkBsvB,KAAO,IAAI77C,OAAO,CAAC,UACjE4B,GAAIoL,IAAAA,SAAsBuf,kBAAkB3qB,GAAK,IAAI5B,OAAO,CAAC,WAE/D87C,oBAAmB58C,OAAAyE,OAAA,GACdqJ,IAAAA,SAAsB8uC,oBAAoB,CAC7Cl6C,EAAG,CAAC,OAAQ,QAAS,gBAEvBm6C,gBAAiB,SAAAC,GAAK,MACN,MAAdA,EAAMC,KACND,EAAME,QAAQjvC,MACd+uC,EAAME,QAAQjvC,KAAKkvC,WAAW,gBAC7BH,EAAME,QAAQjvC,KAAKkvC,WAAW,oBAAoB,GACrD,EAEEC,GAA0B,CAC9BzxB,mBAAkB,SAAArf,GAAuC,IAApC+f,EAAM/f,EAAN+f,OAAmBzB,EAAUte,EAArBwd,QAAWc,WACtC,OAAQyB,EAAOO,YACb,IAAK,kBACH,OAAOhC,EACL,IACA,CAAE3c,KAAMoe,EAAO5U,SAAShK,KACxBO,IAAaqe,EAAO9f,MAAO,CACzB+gB,YAAa,GACbC,kBAAmB,CAAC,KAG1B,IAAK,cACH,OAAO3C,EACL,IACA,CAAE3c,KAAM,KACRD,IAAaqe,EAAO9f,MAAO,CACzB+gB,YAAa,GACbC,kBAAmB,CAAC,KAG1B,QACE,OAAO3C,EACL,IACA,CAAE3c,KAAK,IAAKoe,EAAOtf,MACnBiB,IAAaqe,EAAO9f,MAAO,CACzB+gB,YAAa,GACbC,kBAAmB,CAAC,KAI9B,EACA3B,mBAAkB,SAAAnH,GAAiD,IAA9C4H,EAAM5H,EAAN4H,OAAQhhB,EAAQoZ,EAARpZ,SAAqBuf,EAAUnG,EAArBqF,QAAWc,WAChD,OAAQyB,EAAOO,YACb,IAAK,cACH,OAAOhC,EAAW,IAAK,CAAE3c,KAAK,KAAQoe,EAAO9f,OAC/C,IAAK,cACH,OAAOqe,EAAW,IAAK,CAAE3c,KAAK,IAAKoe,EAAOtf,MAAU1B,GACtD,IAAK,kBACH,OAAOuf,EAAW,IAAK,CAAE3c,KAAMoe,EAAO5U,SAAShK,KAAOpC,GACxD,QACE,OAAO,KAEb,GAwPF,GArPkD,SAAHgxB,GAsBxC,IArBLhb,EAAIgb,EAAJhb,KACAg8B,EAAShhB,EAATghB,UACAC,EAAmBjhB,EAAnBihB,oBACAC,EAAkClhB,EAAlCkhB,mCACAC,EAAsBnhB,EAAtBmhB,uBACAC,EAAqCphB,EAArCohB,sCACAlhC,EAAW8f,EAAX9f,YACAmhC,EAA4BrhB,EAA5BqhB,6BACAC,EAAiCthB,EAAjCshB,kCACAjlC,EAAwB2jB,EAAxB3jB,yBACAklC,EAAuCvhB,EAAvCuhB,wCACAC,EAAWxhB,EAAXwhB,YACAC,EAA0BzhB,EAA1ByhB,2BACAp+B,EAAe2c,EAAf3c,gBACAq+B,EAAwB1hB,EAAxB0hB,yBACAnpB,EAAcyH,EAAdzH,eACA6D,EAAQ4D,EAAR5D,SACAulB,EAAoB3hB,EAApB2hB,qBACAC,EAA4B5hB,EAA5B4hB,6BACAC,EAAyB7hB,EAAzB6hB,0BACAC,EAAiC9hB,EAAjC8hB,kCAyBA,OAvBAjpC,EAAAA,EAAAA,YAAU,WACR,GAAIsC,OAOF,IANA,IAAI3D,EAAW4D,SAAS4c,qBAAqB,KACzC+pB,EAAsB,IAAIv8B,OAC5B,wGACA,KACDw8B,EAAA,WAIC,GADWD,EAAoBtwB,KAAKja,EAAS1S,GAAG8M,MACtC,CACR4F,EAAS1S,GAAGyO,OAAS,SACrB,IAAI0uC,EAAYzqC,EAAS1S,GAAG8M,KAAK+c,MAAM,KAAKrf,MACxC4yC,EAAY1qC,EAAS1S,GAAG8M,KAAK+c,MAAM,KACnCze,EAAQgyC,EAAUA,EAAUr/C,OAAS,GAAG8rB,MAAM,KAAKrf,MACvDkI,EAAS1S,GAAGq9C,QAAU,YACpBppC,EAAAA,EAAAA,IAAa,UAAW,WAAY,YAAckpC,EAAUG,cAAelyC,EAC7E,CACF,CACF,EAXSpL,EAAI,EAAGu9C,EAAM7qC,EAAS3U,OAAQiC,EAAIu9C,EAAKv9C,IAAGk9C,GAavD,GAAG,IAGD5xC,EAAAA,cAAA,OAAK1B,UAAW,6DACbsW,EAAKzW,KAAI,SAAAuR,GACR,OAyOR,SAAsBA,GACpB,MAA8B,sBAAvBA,EAAQyQ,YAA6D,qBAAvBzQ,EAAQyQ,UAC/D,CA3OY+xB,CAAaxiC,GAEb1P,EAAAA,cAAA,OACErL,IAAK+a,EAAQ9O,GACbU,wBAAyB,CACvBtC,OAAQ0wC,GAAuBhgC,EAAQA,SAASxR,QAAQ,IAAIkX,OAAO,UAAW,KAAM,WAwOpG,SAAsB1F,GACpB,MAA8B,sBAAvBA,EAAQyQ,YAA6D,qBAAvBzQ,EAAQyQ,UAC/D,CAtOmBgyB,CAAaziC,GAEpB1P,EAAAA,cAAA,OACErL,IAAK+a,EAAQ9O,GACbU,wBAAyB,CACvBtC,OAAQ0wC,GAAuBp8C,GAAOoc,EAAQ0iC,cAAezB,QAmO7E,SAAyBjhC,GACvB,MAA8B,yBAAvBA,EAAQyQ,YAAgE,wBAAvBzQ,EAAQyQ,UAClE,CAjOmBkyB,CAAgB3iC,GAEvB1P,EAAAA,cAAA,OAAK1B,U7F9QU,oD6F8QuB3J,IAAK+a,EAAQ9O,IACjDZ,EAAAA,cAAA,OACE1B,U7FnRG,6C6FmRkD,UAA1BoR,EAAQ4iC,cAA4B,oDAA4B,IAC3FvxC,IAAK2O,EAAQ7O,MAAMG,IACnBK,IAAKqO,EAAQ7O,MAAMQ,MAErBrB,EAAAA,cAAA,OACE1B,UAAW2C,EACXK,wBAAyB,CACvBtC,OAAQ0wC,GAAuBhgC,EAAQpV,UAwNzD,SAAyBoV,GACvB,MAA8B,yBAAvBA,EAAQyQ,YAAgE,wBAAvBzQ,EAAQyQ,UAClE,CArNmBoyB,CAAgB7iC,GAEvB1P,EAAAA,cAAA,OACErL,IAAK+a,EAAQ9O,GACbtC,U7F/Ra,qD6F+RgD,UAA1BoR,EAAQ8iC,cAA4B,oDAA4B,KAElGC,GAAa/iC,EAAQgjC,OACtB1yC,EAAAA,cAAA,OACE1B,UAAW2C,EACXK,wBAAyB,CACvBtC,OAAQ0wC,GAAuBhgC,EAAQA,aA6MzD,SAAqBA,GACnB,MAA8B,qBAAvBA,EAAQyQ,UACjB,CA1MmBwyB,CAAYjjC,GAEnB1P,EAAAA,cAAA,KACErL,IAAK+a,EAAQ9O,GACbtC,U7FnTS,gD6FoTTkD,KAAMkO,EAAQ7L,KACdvC,wBAAyB,CACvBtC,OAAQ0wC,GAAuBhgC,EAAQA,YAqMvD,SAAqBA,GACnB,MAA8B,qBAAvBA,EAAQyQ,UACjB,CAnMmByyB,CAAYljC,GAEnB1P,EAAAA,cAAA,OAAK1B,U7FpTM,gD6FoTuB3J,IAAK+a,EAAQ9O,IAC5C6xC,GAAa/iC,EAAQgjC,QAkMpC,SAA0BhjC,GACxB,MAA8B,0BAAvBA,EAAQyQ,UACjB,CAjMmB0yB,CAAiBnjC,GAExB1P,EAAAA,cAAA,UACErL,IAAK+a,EAAQ9O,GACbtC,U7FrUc,qD6FsUdwB,MAAO4P,EAAQojC,OAAOtgD,KACtBuO,IAAK2O,EAAQojC,OAAO9xC,IACpB0P,OAqJOqiC,EArJYrjC,EAAQojC,OAAOpiC,MAsJvCqiC,EAAcx0B,MAAM,KAAKja,QAAO,SAAC0uC,EAActiC,GACpD,IACgCuiC,EAD1BC,EAAWxiC,EAAM6N,MAAM,KAC7B,OAAI20B,EAAS,IAAMA,EAAS,GAC1Bz/C,OAAAyE,OAAA,GAAY86C,IAAYC,EAAA,IAAGC,EAAS,GAAGhxC,QAASgxC,EAAS,GAAGhxC,OAAM+wC,IAE3DD,CAEX,GAAG,CAAC,IA5JQjgC,QAAQ,gGA+LtB,SAA2BrD,GACzB,MAA8B,2BAAvBA,EAAQyQ,UACjB,CA9LmBgzB,CAAkBzjC,GAEzB1P,EAAAA,cAACozC,EAAe,CACdz+C,IAAK+a,EAAQ9O,GACbwD,MAAOysC,EACPrtC,oBAAqBstC,EACrBhtC,MAAO4L,EAAQ5L,QAkL7B,SAAsC4L,GACpC,MAA8B,sCAAvBA,EAAQyQ,UACjB,CAjLmBkzB,CAA6B3jC,GAEpC1P,EAAAA,cAACszC,EAAoB,CACnB3+C,IAAK+a,EAAQ9O,GACbkD,MAAO4L,EAAQ5L,MACfmI,yBAA0BA,EAC1BC,iCAAkCilC,IA6LhD,SAAyBzhC,GACvB,MAA8B,mBAAvBA,EAAQyQ,UACjB,CA5LmBozB,CAAgB7jC,GAClB1P,EAAAA,cAACwzC,GAAAA,EAAO,CAAC7+C,IAAK+a,EAAQ9O,GAAId,MAAO8wC,EAAWrxC,KAAM6xC,EAAarxC,OAAQsxC,IA6KxF,SAA8B3hC,GAC5B,MAA8B,oCAAvBA,EAAQyQ,UACjB,CA9KmBszB,CAAqB/jC,GAE5B1P,EAAAA,cAAC0zC,GAAkB,CACjB/+C,IAAK+a,EAAQ9O,GACb4N,cAAeuiC,EACfvtC,oBAAqBwtC,EACrBlhC,YAAaA,EACbhM,MAAO4L,EAAQ5L,QAyK7B,SAA2B4L,GACzB,MAA8B,2BAAvBA,EAAQyQ,UACjB,CAxKmBwzB,CAAkBjkC,GAEzB1P,EAAAA,cAAC4zC,GAAe,CACdj/C,IAAK+a,EAAQ9O,GACb4C,oBAAqBytC,EACrBntC,MAAO4L,EAAQ5L,QAqK7B,SAAgC4L,GAC9B,MAA8B,gCAAvBA,EAAQyQ,UACjB,CApKmB0zB,CAAuBnkC,GAE9B1P,EAAAA,cAAC8zC,GAAoB,CACnBn/C,IAAK+a,EAAQ9O,GACb4C,oBAAqB0tC,EACrBptC,MAAO4L,EAAQ5L,QAqK7B,SAA6B4L,GAC3B,MAA8B,6BAAvBA,EAAQyQ,UACjB,CApKmB4zB,CAAoBrkC,GACtB1P,EAAAA,cAACg0C,GAAW,CAAC/gC,gBAAiBA,EAAiBte,IAAK+a,EAAQ9O,KAqK7E,SAAsB8O,GACpB,MAA8B,4BAAvBA,EAAQyQ,UACjB,CAtKmB8zB,CAAavkC,GAEpB1P,EAAAA,cAACk0C,GAAU,CACTv/C,IAAK+a,EAAQ9O,GACbgU,KAAMlF,EAAQg2B,KACd1lB,cAAesxB,EACfnpB,eAAgBA,IAkK9B,SAA4BzY,GAC1B,MAA8B,4BAAvBA,EAAQyQ,UACjB,CAjKmBg0B,CAAmBzkC,GACrB1P,EAAAA,cAACo0C,GAAU,CAACpoB,SAAUA,IAkKvC,SAAiCtc,GAC/B,MAA8B,2BAAvBA,EAAQyQ,UACjB,CAnKmBk0B,CAAwB3kC,GAE/B1P,EAAAA,cAACs0C,GAAe,CACdx0C,MAAO4P,EAAQ5P,MACfsE,MAAOmtC,EACP/tC,oBAAqBguC,EACrBzf,mBAAoBuf,IA+JlC,SAAyC5hC,GACvC,MAA8B,wBAAvBA,EAAQyQ,UACjB,CA9JmBo0B,CAAgC7kC,GAEvC1P,EAAAA,cAACw0C,GAAwB,CACvB10C,MAAO4P,EAAQ5P,MACf0D,oBAAqBiuC,EACrB1f,mBAAoBuf,IA2JlC,SACE5hC,GAEA,MAA8B,qCAAvBA,EAAQyQ,UACjB,CA5JmBs0B,CAA4B/kC,GAEnC1P,EAAAA,cAAC00C,GAAmB,CAClB7c,eAAgB6Z,EAChB/8C,IAAK+a,EAAQ9O,KA0J3B,SAAsB8O,GACpB,MAA8B,sBAAvBA,EAAQyQ,UACjB,CAzJmBw0B,CAAajlC,GACf1P,EAAAA,cAAC40C,GAAS,CAAC3a,UAAWvqB,EAAS/a,IAAK+a,EAAQ9O,KA0J7D,SACE8O,GAEA,MAA8B,yCAAvBA,EAAQyQ,UACjB,CA7JmB00B,CAAgCnlC,GAEvC1P,EAAAA,cAAC80C,GAAuB,CACtBla,WAAYlrB,EACZ/a,IAAK+a,EAAQ9O,GACbi3B,eAAgB6Z,IA0J9B,SAAmChiC,GACjC,MAA8B,mCAAvBA,EAAQyQ,UACjB,CAzJmB40B,CAA0BrlC,GAEjC1P,EAAAA,cAACg1C,GAAiB,CAChBllC,YAAaA,EACb8E,KAAMlF,EACNmoB,eAAgB6Z,IAsJ9B,SAAmChiC,GACjC,MAA8B,mCAAvBA,EAAQyQ,UACjB,CArJmB80B,CAA0BvlC,GAC5B1P,EAAAA,cAACk1C,GAAiB,CAACtgC,KAAMlF,EAAS/a,IAAK+a,EAAQ9O,KAsJhE,SAA8B8O,GAC5B,MAA8B,8BAAvBA,EAAQyQ,UACjB,CAvJmBg1B,CAAqBzlC,GACvB1P,EAAAA,cAACo1C,GAAY,CAACxgC,KAAMlF,EAAS/a,IAAK+a,EAAQ9O,KAwJ3D,SAAmC8O,GACjC,MAA8B,mCAAvBA,EAAQyQ,UACjB,CAzJmBk1B,CAA0B3lC,GAC5B1P,EAAAA,cAACs1C,GAAuB,CAAC3gD,IAAK+a,EAAQ9O,KA0JvD,SACE8O,GAEA,MAA8B,yCAAvBA,EAAQyQ,UACjB,CA7JmBo1B,CAAgC7lC,GAClC1P,EAAAA,cAACw1C,GAA6B,CAAC7gD,IAAK+a,EAAQ9O,GAAIgU,KAAMlF,IA8JvE,SAAkBA,GAChB,MAA8B,kBAAvBA,EAAQyQ,UACjB,CA/JmBs1B,CAAS/lC,GACX1P,EAAAA,cAAC01C,GAAM,CAAC/gD,IAAK+a,EAAQ9O,GAAIgU,KAAMlF,IAgKhD,SACEA,GAEA,MAA8B,oCAAvBA,EAAQyQ,UACjB,CAnKmBw1B,CAA2BjmC,GAC7B1P,EAAAA,cAAC41C,GAAkB,CAACjhD,IAAK+a,EAAQ9O,GAAIgU,KAAMlF,SAD7C,EAkCf,IAAqBqjC,CA/Bf,IAGN,EAIA,SAASN,GAAaC,GACpB,MAAuB,YAAnBA,EAAMmD,SAEN71C,EAAAA,cAAA,UACE1B,UAAW2C,EACXF,IAAK,iCAAmC2xC,EAAMoD,YAC9CC,YAAY,IACZC,MAAM,2FACNC,iBAAe,IAGS,UAAnBvD,EAAMmD,SAEb71C,EAAAA,cAAA,UACEe,IAAK,kCAAoC2xC,EAAMoD,YAC/Cx3C,UAAW2C,EACX80C,YAAY,IACZC,MAAM,2CACNC,iBAAe,SAPd,CAWT,gIC1dWC,EAAiB,2CACjBC,EAAU,oCACVC,EAAa,uCACbtyC,EAAQ,kCAGRuyC,EAAgB,yECKhBC,EAIP,CAAEC,OAAQ,KAAMjrC,SAAU,KAAMkrC,WAAY,MA4HhD,EA1H0C,SAAH32C,GAAkE,IAA5DmsB,EAAQnsB,EAARmsB,SAAU4kB,EAAS/wC,EAAT+wC,UAAW6F,EAAQ52C,EAAR42C,SAAU1hC,EAAMlV,EAANkV,OAAQ2hC,EAAa72C,EAAb62C,cAC5EC,EAAiBp1C,IAAaqvC,GAG9BgG,EAIF,CAAEL,OAAQ,KAAMjrC,SAAU,KAAMkrC,WAAY,MAwChD,OAAQC,GACN,KAAKzqB,EAASM,MAAQN,EAASM,KAAKhsB,KAClCs2C,EAAMtrC,SAAW0gB,EAASloB,MAC1B,MACF,KAAKkoB,EAASe,OAASf,EAASe,MAAMzsB,KACpCs2C,EAAMtrC,SAAW0gB,EAASc,OAC1B,MACF,KAAKd,EAASoB,OAASpB,EAASoB,MAAM9sB,KACpCs2C,EAAMtrC,SAAW0gB,EAASmB,OAC1B,MACF,KAAKnB,EAASyB,OAASzB,EAASyB,MAAMntB,KACpCs2C,EAAMtrC,SAAW0gB,EAASwB,OAC1B,MACF,KAAKxB,EAAS8B,OAAS9B,EAAS8B,MAAMxtB,KACpCs2C,EAAMtrC,SAAW0gB,EAAS6B,OAY9B,OARK+oB,EAAMtrC,WAvDT0gB,EAASW,QAAQ/lB,SAAQ,SAAAiwC,GACnBA,EAAQvqB,MAAQmqB,IAAaI,EAAQvqB,KAAKhsB,OAC5Cs2C,EAAML,OAASvqB,EAASloB,MACxB8yC,EAAMJ,WAAaxqB,EAASM,KAAON,EAASM,KAAKhsB,KAAO0rB,EAAS8qB,aACjEF,EAAMtrC,SAAWurC,EAAQ/yC,MAE7B,IACAkoB,EAASgB,QAAQpmB,SAAQ,SAAAiwC,GACnBA,EAAQvqB,MAAQmqB,IAAaI,EAAQvqB,KAAKhsB,OAC5Cs2C,EAAML,OAASvqB,EAASc,OACxB8pB,EAAMJ,WAAaxqB,EAASe,MAAQf,EAASe,MAAMzsB,KAAO0rB,EAAS+qB,cACnEH,EAAMtrC,SAAWurC,EAAQ/yC,MAE7B,IACAkoB,EAASqB,QAAQzmB,SAAQ,SAAAiwC,GACnBA,EAAQvqB,MAAQmqB,IAAaI,EAAQvqB,KAAKhsB,OAC5Cs2C,EAAML,OAASvqB,EAASmB,OACxBypB,EAAMJ,WAAaxqB,EAASoB,MAAQpB,EAASoB,MAAM9sB,KAAO0rB,EAASgrB,cACnEJ,EAAMtrC,SAAWurC,EAAQ/yC,MAE7B,IACAkoB,EAAS0B,QAAQ9mB,SAAQ,SAAAiwC,GACnBA,EAAQvqB,MAAQmqB,IAAaI,EAAQvqB,KAAKhsB,OAC5Cs2C,EAAML,OAASvqB,EAASwB,OACxBopB,EAAMJ,WAAaxqB,EAASyB,MAAQzB,EAASyB,MAAMntB,KAAO0rB,EAASirB,cACnEL,EAAMtrC,SAAWurC,EAAQ/yC,MAE7B,IACAkoB,EAAS+B,QAAQnnB,SAAQ,SAAAiwC,GACnBA,EAAQvqB,MAAQmqB,IAAaI,EAAQvqB,KAAKhsB,OAC5Cs2C,EAAML,OAASvqB,EAAS6B,OACxB+oB,EAAMJ,WAAaxqB,EAAS8B,MAAQ9B,EAAS8B,MAAMxtB,KAAO0rB,EAASkrB,cACnEN,EAAMtrC,SAAWurC,EAAQ/yC,MAE7B,MAyBF2E,EAAAA,EAAAA,YAAU,WACR6tC,EAAWM,CACb,GAAG,IAGD52C,EAAAA,cAAA,OAAK+2B,KAAK,aAAa,aAAW,wBAAwBz4B,UD9FvC,uCC+FjB0B,EAAAA,cAAA,MAAI1B,UD9Fc,wCC+FhB0B,EAAAA,cAAA,MAAI1B,UAAW2C,GACbjB,EAAAA,cAAA,KAAGwB,KAAMuT,IAAW2hC,EAAgB,IAAG,IAAO3hC,EAAUzW,UAAW2C,GA5EzD,WA+EVjB,EAAAA,cAAA,OAAK1B,UAAW2C,GACdjB,EAAAA,cAACm3C,EAAAA,EAAO,CAAC,eAAa,EAAM74C,UAAW2C,OAIzC21C,EAAML,QAAUK,EAAMtrC,WACtBtL,EAAAA,cAAA,MAAI1B,UAAW2C,GACZ21C,EAAML,OACLv2C,EAAAA,cAAA,KACEwB,KAAMuT,IAAW2hC,EAAa,IAAOE,EAAMJ,WAAU,IAASzhC,EAAM,IAAI6hC,EAAMJ,WAC9El4C,UAAW2C,GAEV21C,EAAML,QAGTv2C,EAAAA,cAAA,QAAM1B,UAAW2C,GAAuB21C,EAAMtrC,UAE/CsrC,EAAML,QACLv2C,EAAAA,cAAA,OAAK1B,UAAW2C,GACdjB,EAAAA,cAACm3C,EAAAA,EAAO,CAAC,eAAa,EAAM74C,UAAW2C,MAM9C21C,EAAML,QACLv2C,EAAAA,cAAA,UACEA,EAAAA,cAAA,QAAM1B,UAAW2C,GAAuB21C,EAAMtrC,YAIhDsrC,EAAML,SAAWK,EAAMtrC,UACvBtL,EAAAA,cAAA,UACEA,EAAAA,cAAA,OAAK1B,UAAW2C,EAAsBK,wBAAyB,CAAEtC,OAAQ23C,OAMrF,2GCjGA,EA9B0C,SAAH92C,GAAgD,IAA1CN,EAAIM,EAAJN,KAAMuE,EAAKjE,EAALiE,MAAOiR,EAAMlV,EAANkV,OAAQ2hC,EAAa72C,EAAb62C,cAYhE,OACE12C,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAA,MAAI1B,UCxBmB,8CDwBiBwF,GACxC9D,EAAAA,cAAA,MAAI1B,UC1Bc,yCD2BfiB,EAAKpB,KAAI,SAAAi5C,GAER,IAAM32C,EACkC,eAAtCV,EAAO2vB,YAAY3vB,EAAOgV,QAA2B,aAAehV,EAAO2vB,YAAY3vB,EAAOgV,QAC1FpV,GAAkBgB,EAAAA,EAAAA,IAAO,IAAIlB,KAAK23C,EAASz3C,iBAAkBc,GAC7DH,EAAOyU,IAAW2hC,EAAa,SAAYU,EAAS92C,KAAI,IAASyU,EAAM,SAASqiC,EAAS92C,KAE/F,OAAO82C,EAASt3C,MAtBxB,SAA0Bc,EAAYd,EAAeQ,EAAcX,GACjE,OACEK,EAAAA,cAAA,MAAI1B,UCfa,uCDegB3J,IAAKiM,GACpCZ,EAAAA,cAAA,KAAGwB,KAAMlB,GACPN,EAAAA,cAAA,OAAK1B,UCdO,uCDcsBqB,GAClCK,EAAAA,cAAA,OAAK1B,UCdQ,wCDcsBwB,IAI3C,CAagCu3C,CAAiBD,EAASx2C,GAAIw2C,EAASt3C,MAAOQ,EAAMX,GAAmB,IACjG,KAIR,0GEJA,EA3B4C,SAAHE,GAA6C,IAAvCy3C,EAAez3C,EAAfy3C,gBAAiBC,EAAc13C,EAAd03C,eAC9D5vC,GAAsCC,EAAAA,EAAAA,UAAS,IAAxC4vC,EAAW7vC,EAAA,GAAE8vC,EAAc9vC,EAAA,GAClCG,GAAoCF,EAAAA,EAAAA,UAAS,IAAtC8vC,EAAU5vC,EAAA,GAAE6vC,EAAa7vC,EAAA,GAOhC,OALAW,EAAAA,EAAAA,YAAU,WACRgvC,EAAe,gDAAgD1sC,OAAOmH,SAAS1Q,MAC/Em2C,EAAc,wCAAwC5sC,OAAOmH,SAAS1Q,KACxE,GAAG,IAEI81C,GAAmBC,EACxBv3C,EAAAA,cAAA,OAAK1B,UClBiB,6CDmBnBg5C,GACCt3C,EAAAA,cAAA,KAAGwB,KAAMg2C,EAAar0C,OAAO,SAAS7E,UCrBxB,yCDsBZ0B,EAAAA,cAAA,OAAKe,IAAK62C,EAAAA,EAAcv2C,IAAI,kBAAkB,YAIjDk2C,GACCv3C,EAAAA,cAAA,KAAGwB,KAAMk2C,EAAYv0C,OAAO,SAAS7E,UCzBxB,wCD0BX0B,EAAAA,cAAA,OAAKe,IAAK82C,EAAAA,EAAax2C,IAAI,iBAAiB,UAKhD,IACN,qFElCWy2C,EAAY,kDCuBvB,EAbyC,SAAHj4C,GAA4C,IAAtCgB,EAAKhB,EAALgB,MAAOf,EAAKD,EAALC,MAAO+D,EAAIhE,EAAJgE,KAAMk0C,EAAUl4C,EAAVk4C,WAC9D,OACE/3C,EAAAA,cAAA,KAAG1B,UCPqB,2CDOakD,KAAMqC,EAAMV,OAAQ40C,EAAa,QAAU,UAC9E/3C,EAAAA,cAACc,EAAAA,EAAQ,CACPC,IAAKF,EACLvC,UCTc,qCDUd4C,gBAAiB,SAAAC,GAAG,OAAIA,EAAIC,aAAa,cAAe,OAAO,IAEjEpB,EAAAA,cAAA,QAAM1B,UCdM,kCDcmBwB,GAGrC,aE4CA,EArD0C,SAAHD,GAA2C,IAArCigB,EAAMjgB,EAANigB,OAAQ/K,EAAMlV,EAANkV,OAAQ2hC,EAAa72C,EAAb62C,cAC3D,OACE12C,EAAAA,cAAA,MAAI1B,UHbgB,wCGac,aAAY,cAC3CwhB,EAAO3hB,KAAI,SAACrJ,EAAG0E,GACd,IAAMw+C,EAAWljD,EAAEmjD,8BAA8B,GAC3CC,EAAcpjD,EAAEqjD,iCAAiC,GACjDt0C,GAAOu0C,EAAAA,EAAAA,IAAwBJ,EAAUjjC,EAAQ2hC,GACjD2B,GAAUD,EAAAA,EAAAA,IAAwBF,EAAanjC,EAAQ2hC,GAE7D,OACE12C,EAAAA,cAACpJ,EAAAA,SAAQ,CAACjC,IAAK6E,GACbwG,EAAAA,cAAA,MAAI1B,UAAW2C,GACbjB,EAAAA,cAACs4C,EAAS,CACRz3C,MAAO/L,EAAEyjD,eAAev3C,IACxBlB,MAAOhL,EAAE0jD,eACT30C,KAAMA,EACNk0C,WAAYC,EAASS,kBAGzBz4C,EAAAA,cAAA,MAAI1B,UAAW2C,GACbjB,EAAAA,cAACs4C,EAAS,CACRz3C,MAAO/L,EAAE4jD,kBAAkB13C,IAC3BlB,MAAOhL,EAAE6jD,kBACT90C,KAAMw0C,EACNN,WAAYG,EAAYO,kBAKlC,IAGN,yGC1BA,EAX2C,SAAH54C,GAAmB,IAAbC,EAAKD,EAALC,MAC5CA,EAAQA,EAAM5B,QAAQ,MAAO,UAAUA,QAAQ,OAAQ,WACvD,IAAMy4C,EAAiBp1C,IAAazB,GAEpC,OACEE,EAAAA,cAAA,OAAK1B,UCXmB,8CDYtB0B,EAAAA,cAAA,MAAI1B,UCbe,0CDagBgD,wBAAyB,CAAEtC,OAAQ23C,KAG5E,gEEkBA,IAhCsB,SAAC5hC,EAAgB6jC,EAAqB5sB,EAAelsB,GACzE,IAAA6H,GAAgCC,EAAAA,EAAAA,WAAS,GAAlCixC,EAAQlxC,EAAA,GAAEmxC,EAAWnxC,EAAA,IAE5Bc,EAAAA,EAAAA,YAAU,WACR,IAAIowC,GAAa9tC,OAAjB,CAGA,IAAIguC,EAAO,GACPhuC,OAAOmH,WACT6mC,EAAOhuC,OAAOmH,SAAS6mC,MAEzB,IAAInC,EAAQ5qB,aAAQ,EAARA,EAAUsqB,SAChBnqC,EAAWpB,OAAOiuC,WAAW,sCAAsCC,QAEnEC,EADgB,IAAI9jC,OAAO,SACUiM,KAAK03B,GAC5CI,EAAYvC,EAAML,QAAUK,EAAMJ,YAAcI,EAAMtrC,UAC1D8tC,EAAAA,EAAAA,IACE,WACArkC,EACA6jC,EACAzsC,EAAW,SAAW,UACtB+sC,EAAuB,eAAiB,aACxCp5C,EACAiL,OAAOmH,SAASqT,SAChB,KACA4zB,EAAYvC,EAAML,QAASK,aAAK,EAALA,EAAOtrC,WAAYP,OAAOmH,SAASmnC,SAAS96B,MAAM,KAAK,GAClF46B,EAAYvC,EAAMJ,WAAa,IAAMI,EAAMtrC,SAASiT,MAAM,KAAK/d,KAAK,KAAK8G,cAAgB,IAAM,IAEjGwxC,GAAY,EAtBZ,CAuBF,GACF,+IChCO,IAAIppC,EAAU,mCACV4pC,EAAe,wCACfC,EAAW,oCACXC,EAAkB,+ECJd,SAASC,IACtB,OAAO,IAAIC,OAAO,IAA0B,sDAC9C,wDCFA,IAAIC,EAAiB,EAAQ,OACzBC,EAAkB,EAAQ,OAC1BC,EAA6B,EAAQ,OACrCC,EAAkB,EAAQ,OAI9B/lD,EAAOC,QAHP,SAAkB4B,GAChB,OAAO+jD,EAAe/jD,IAAMgkD,EAAgBhkD,IAAMikD,EAA2BjkD,IAAMkkD,GACrF,EAC2B/lD,EAAOC,QAAQ+lD,YAAa,EAAMhmD,EAAOC,QAAiB,QAAID,EAAOC,4CCNhG,IAEIgmD,EAFkB,EAAQ,MAEfC,CAAgB,YAC3BC,GAAe,EAEnB,IACE,IAAIC,EAAS,EACTC,EAAqB,CACvB9jC,KAAM,WACJ,MAAO,CAAEitB,OAAQ4W,IACnB,EACA,OAAU,WACRD,GAAe,CACjB,GAEFE,EAAmBJ,GAAY,WAC7B,OAAO/hD,IACT,EAEA6M,MAAMC,KAAKq1C,GAAoB,WAAc,MAAM,CAAG,GACxD,CAAE,MAAO1mB,GAAqB,CAE9B3/B,EAAOC,QAAU,SAAUsF,EAAM+gD,GAC/B,IACE,IAAKA,IAAiBH,EAAc,OAAO,CAC7C,CAAE,MAAOxmB,GAAS,OAAO,CAAO,CAChC,IAAI4mB,GAAoB,EACxB,IACE,IAAIC,EAAS,CAAC,EACdA,EAAOP,GAAY,WACjB,MAAO,CACL1jC,KAAM,WACJ,MAAO,CAAEitB,KAAM+W,GAAoB,EACrC,EAEJ,EACAhhD,EAAKihD,EACP,CAAE,MAAO7mB,GAAqB,CAC9B,OAAO4mB,CACT,sCCvCA,IAAIE,EAAU,EAAQ,OAClBC,EAAU,EAAQ,OAEtB1mD,EAAOC,SAAWwmD,IAAYC,GACR,iBAAV1vC,QACY,iBAAZC,yCCJZjX,EAAOC,QAAyB,iBAAR0mD,MAAoBA,MAA+B,iBAAhBA,KAAKC,4CCDhE,IAAIC,EAAS,EAAQ,OACjBC,EAAU,EAAQ,MAEtB9mD,EAAOC,QAAsC,YAA5B6mD,EAAQD,EAAOE,6CCHhC,IAAIC,EAAc,EAAQ,OACtBC,EAAW,EAAQ,OAEnBt9C,EAAQD,KAAKC,MACbu9C,EAASF,EAAY,GAAGE,QACxB/8C,EAAU68C,EAAY,GAAG78C,SACzBg9C,EAAcH,EAAY,GAAGjjC,OAE7BqjC,EAAuB,8BACvBC,EAAgC,sBAIpCrnD,EAAOC,QAAU,SAAUqnD,EAASp9C,EAAKL,EAAU09C,EAAUC,EAAeC,GAC1E,IAAIC,EAAU79C,EAAWy9C,EAAQ5oD,OAC7B+C,EAAI8lD,EAAS7oD,OACbipD,EAAUN,EAKd,YAJsBp4C,IAAlBu4C,IACFA,EAAgBP,EAASO,GACzBG,EAAUP,GAELj9C,EAAQs9C,EAAaE,GAAS,SAAUC,EAAOC,GACpD,IAAIC,EACJ,OAAQZ,EAAOW,EAAI,IACjB,IAAK,IAAK,MAAO,IACjB,IAAK,IAAK,OAAOP,EACjB,IAAK,IAAK,OAAOH,EAAYj9C,EAAK,EAAGL,GACrC,IAAK,IAAK,OAAOs9C,EAAYj9C,EAAKw9C,GAClC,IAAK,IACHI,EAAUN,EAAcL,EAAYU,EAAI,GAAI,IAC5C,MACF,QACE,IAAInmD,GAAKmmD,EACT,GAAU,IAANnmD,EAAS,OAAOkmD,EACpB,GAAIlmD,EAAID,EAAG,CACT,IAAIL,EAAIuI,EAAMjI,EAAI,IAClB,OAAU,IAANN,EAAgBwmD,EAChBxmD,GAAKK,OAA8BwN,IAApBs4C,EAASnmD,EAAI,GAAmB8lD,EAAOW,EAAI,GAAKN,EAASnmD,EAAI,GAAK8lD,EAAOW,EAAI,GACzFD,CACT,CACAE,EAAUP,EAAS7lD,EAAI,GAE3B,YAAmBuN,IAAZ64C,EAAwB,GAAKA,CACtC,GACF,sCC5CA,IAAIxgC,EAAW,EAAQ,OACnBw/B,EAAU,EAAQ,MAGlBiB,EAFkB,EAAQ,MAElB7B,CAAgB,SAI5BlmD,EAAOC,QAAU,SAAU+nD,GACzB,IAAIC,EACJ,OAAO3gC,EAAS0gC,UAAmC/4C,KAA1Bg5C,EAAWD,EAAGD,MAA0BE,EAA2B,WAAhBnB,EAAQkB,GACtF,iCCXAhoD,EAAOC,QAAU,SAAUsF,GACzB,IACE,MAAO,CAAEo6B,OAAO,EAAOn7B,MAAOe,IAChC,CAAE,MAAOo6B,GACP,MAAO,CAAEA,OAAO,EAAMn7B,MAAOm7B,EAC/B,CACF,sCCNA,IAAIknB,EAAS,EAAQ,OACjBqB,EAA2B,EAAQ,OACnCC,EAAa,EAAQ,OACrBC,EAAW,EAAQ,OACnBC,EAAgB,EAAQ,MACxBnC,EAAkB,EAAQ,OAC1BoC,EAAa,EAAQ,OACrB7B,EAAU,EAAQ,OAClB8B,EAAU,EAAQ,OAClBC,EAAa,EAAQ,MAErBC,EAAyBP,GAA4BA,EAAyBvpD,UAC9E+pD,EAAUxC,EAAgB,WAC1ByC,GAAc,EACdC,EAAiCT,EAAWtB,EAAOgC,uBAEnDC,EAA6BV,EAAS,WAAW,WACnD,IAAIW,EAA6BV,EAAcH,GAC3Cc,EAAyBD,IAA+B7gD,OAAOggD,GAInE,IAAKc,GAAyC,KAAfR,EAAmB,OAAO,EAEzD,GAAID,KAAaE,EAA8B,QAAKA,EAAgC,SAAI,OAAO,EAI/F,IAAKD,GAAcA,EAAa,KAAO,cAAcl7B,KAAKy7B,GAA6B,CAErF,IAAIE,EAAU,IAAIf,GAAyB,SAAUvjC,GAAWA,EAAQ,EAAI,IACxEukC,EAAc,SAAU3jD,GAC1BA,GAAK,WAA0B,IAAG,WAA0B,GAC9D,EAIA,IAHkB0jD,EAAQ3gC,YAAc,CAAC,GAC7BogC,GAAWQ,IACvBP,EAAcM,EAAQvyB,MAAK,WAA0B,cAAcwyB,GACjD,OAAO,CAE3B,CAAE,OAAQF,IAA2BV,GAAc7B,KAAamC,CAClE,IAEA5oD,EAAOC,QAAU,CACfkpD,YAAaL,EACbM,gBAAiBR,EACjBD,YAAaA,qCC7Cf,IAAIT,EAA2B,EAAQ,OACnCmB,EAA8B,EAAQ,OACtCP,EAA6B,qBAEjC9oD,EAAOC,QAAU6oD,IAA+BO,GAA4B,SAAUC,GACpFpB,EAAyBpjD,IAAIwkD,GAAU5yB,UAAKznB,GAAW,WAA0B,GACnF,wCCNA,IAAI3K,EAAO,EAAQ,OACfilD,EAAS,EAAQ,OACjBC,EAAgB,EAAQ,OACxBC,EAAc,EAAQ,OAEtBC,EAAkBroC,OAAO1iB,UAE7BqB,EAAOC,QAAU,SAAU0pD,GACzB,IAAIC,EAAQD,EAAEC,MACd,YAAiB36C,IAAV26C,GAAyB,UAAWF,GAAqBH,EAAOI,EAAG,WAAYH,EAAcE,EAAiBC,GAC1FC,EAAvBtlD,EAAKmlD,EAAaE,EACxB,sCCXA,IAAIpgD,EAAI,EAAQ,OAGZsgD,EAASngD,KAAKogD,MACdC,EAAMrgD,KAAKqgD,IACXC,EAAOtgD,KAAKsgD,KAQhBzgD,EAAE,CAAE6F,OAAQ,OAAQ66C,MAAM,EAAMlrD,MAAO,EAAGmrD,SAJ3BL,GAAUA,EAAOM,IAAUC,OAASD,KAIS,CAE1DL,MAAO,SAAeO,EAAQC,GAM5B,IALA,IAIIC,EAAKlO,EAJLmO,EAAM,EACN7pD,EAAI,EACJ8pD,EAAO3rD,UAAUJ,OACjBgsD,EAAO,EAEJ/pD,EAAI8pD,GAELC,GADJH,EAAMR,EAAIjrD,UAAU6B,QAGlB6pD,EAAMA,GADNnO,EAAMqO,EAAOH,GACKlO,EAAM,EACxBqO,EAAOH,GAGPC,GAFSD,EAAM,GACflO,EAAMkO,EAAMG,GACCrO,EACDkO,EAEhB,OAAOG,IAASP,IAAWA,IAAWO,EAAOV,EAAKQ,EACpD,wCCjCF,IAAIjhD,EAAI,EAAQ,OACZjF,EAAO,EAAQ,OACfqmD,EAAY,EAAQ,OACpBC,EAA6B,EAAQ,OACrCC,EAAU,EAAQ,MAClBC,EAAU,EAAQ,OAKtBvhD,EAAE,CAAE6F,OAAQ,UAAW66C,MAAM,EAAMC,OAJO,EAAQ,MAIgC,CAChFa,WAAY,SAAoBzB,GAC9B,IAAI0B,EAAI9mD,KACJ+mD,EAAaL,EAA2BxpD,EAAE4pD,GAC1CrmC,EAAUsmC,EAAWtmC,QACrB2K,EAAS27B,EAAW37B,OACpBpoB,EAAS2jD,GAAQ,WACnB,IAAIK,EAAiBP,EAAUK,EAAErmC,SAC7B1T,EAAS,GACTk6C,EAAU,EACVC,EAAY,EAChBN,EAAQxB,GAAU,SAAUL,GAC1B,IAAIxjD,EAAQ0lD,IACRE,GAAgB,EACpBD,IACA9mD,EAAK4mD,EAAgBF,EAAG/B,GAASvyB,MAAK,SAAUlyB,GAC1C6mD,IACJA,GAAgB,EAChBp6C,EAAOxL,GAAS,CAAE6lD,OAAQ,YAAa9mD,MAAOA,KAC5C4mD,GAAazmC,EAAQ1T,GACzB,IAAG,SAAU0uB,GACP0rB,IACJA,GAAgB,EAChBp6C,EAAOxL,GAAS,CAAE6lD,OAAQ,WAAYC,OAAQ5rB,KAC5CyrB,GAAazmC,EAAQ1T,GACzB,GACF,MACEm6C,GAAazmC,EAAQ1T,EACzB,IAEA,OADI/J,EAAOy4B,OAAOrQ,EAAOpoB,EAAO1C,OACzBymD,EAAWhC,OACpB,wCCzCF,IAAI1/C,EAAI,EAAQ,OACZjF,EAAO,EAAQ,OACf0iD,EAAc,EAAQ,OACtBwE,EAAyB,EAAQ,OACjCrD,EAAa,EAAQ,OACrBsD,EAAoB,EAAQ,KAC5BxD,EAAW,EAAQ,OACnB3gD,EAAW,EAAQ,OACnBokD,EAAY,EAAQ,OACpBC,EAAiB,EAAQ,OACzBC,EAAkB,EAAQ,OAC1B1F,EAAkB,EAAQ,OAC1BqC,EAAU,EAAQ,OAElBsD,EAAU3F,EAAgB,WAC1B4F,EAAaC,UACb/gD,EAAUg8C,EAAY,GAAGh8C,SACzBb,EAAU68C,EAAY,GAAG78C,SACzBg9C,EAAcH,EAAY,GAAGjjC,OAC7BioC,EAAMtiD,KAAKsiD,IAEXC,EAAgB,SAAUC,EAAQC,EAAaC,GACjD,OAAIA,EAAYF,EAAOxtD,QAAgB,EACnB,KAAhBytD,EAA2BC,EACxBphD,EAAQkhD,EAAQC,EAAaC,EACtC,EAIA7iD,EAAE,CAAE6F,OAAQ,SAAUi9C,OAAO,GAAQ,CACnCl/B,WAAY,SAAoBg/B,EAAaG,GAC3C,IACIC,EAAY3C,EAAO4C,EAAUN,EAAQO,EAAcC,EAAmBC,EAAcC,EAAWnF,EAD/FoF,EAAIrB,EAAuBtnD,MAE3B2F,EAAW,EACXijD,EAAiB,EACjB5lD,EAAS,GACb,IAAKukD,EAAkBU,GAAc,CAEnC,IADAI,EAAatE,EAASkE,MAEpBvC,EAAQtiD,EAASkkD,EAAuBG,EAAeQ,OACjDnhD,EAAQ4+C,EAAO,MAAM,MAAM,IAAIkC,EAAW,mDAGlD,GADAU,EAAWd,EAAUS,EAAaN,GAEhC,OAAOvnD,EAAKkoD,EAAUL,EAAaU,EAAGP,GACjC,GAAI/D,GAAWgE,EACpB,OAAOpiD,EAAQ7C,EAASulD,GAAIV,EAAaG,EAE7C,CAQA,IAPAJ,EAAS5kD,EAASulD,GAClBJ,EAAenlD,EAAS6kD,IACxBO,EAAoBvE,EAAWmE,MACPA,EAAehlD,EAASglD,IAChDK,EAAeF,EAAa/tD,OAC5BkuD,EAAYZ,EAAI,EAAGW,GACnB9iD,EAAWoiD,EAAcC,EAAQO,EAAc,IAC1B,IAAd5iD,GACL49C,EAAciF,EACVplD,EAASglD,EAAaG,EAAc5iD,EAAUqiD,IAC9CN,EAAgBa,EAAcP,EAAQriD,EAAU,QAAIoF,EAAWq9C,GACnEplD,GAAUigD,EAAY+E,EAAQY,EAAgBjjD,GAAY49C,EAC1DqF,EAAiBjjD,EAAW8iD,EAC5B9iD,EAAWoiD,EAAcC,EAAQO,EAAc5iD,EAAW+iD,GAK5D,OAHIE,EAAiBZ,EAAOxtD,SAC1BwI,GAAUigD,EAAY+E,EAAQY,IAEzB5lD,CACT,sCCnEF,EAAQ,2CCAR,EAAQ","sources":["webpack://keolis-web-passenger/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://keolis-web-passenger/./node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","webpack://keolis-web-passenger/./node_modules/hoist-non-react-statics/node_modules/react-is/index.js","webpack://keolis-web-passenger/./node_modules/html-entities/lib/index.js","webpack://keolis-web-passenger/./node_modules/html-entities/lib/named-references.js","webpack://keolis-web-passenger/./node_modules/html-entities/lib/numeric-unicode-map.js","webpack://keolis-web-passenger/./node_modules/html-entities/lib/surrogate-pairs.js","webpack://keolis-web-passenger/./node_modules/vhtml/dist/vhtml.js","webpack://keolis-web-passenger/./src/components/all-news/all-news.module.scss","webpack://keolis-web-passenger/./src/components/all-news/all-news.tsx","webpack://keolis-web-passenger/./src/components/layout/form/input.tsx","webpack://keolis-web-passenger/./src/components/rich-datocms-content/rich-datocms-content.module.scss","webpack://keolis-web-passenger/./src/components/schedules-search/results-transport-method/schedules-search-results-transport-method.module.scss","webpack://keolis-web-passenger/./src/components/schedules-search/results-line/schedules-search-results-line.module.scss","webpack://keolis-web-passenger/./src/components/schedules-search/results-line/schedules-search-results-line.tsx","webpack://keolis-web-passenger/./src/components/schedules-search/results-transport-method/schedules-search-results-transport-method.tsx","webpack://keolis-web-passenger/./src/components/schedules-search/results/schedules-search-results.tsx","webpack://keolis-web-passenger/./src/components/schedules-search/results/schedules-search-results.module.scss","webpack://keolis-web-passenger/./src/components/schedules-search/form/schedules-search-form.module.scss","webpack://keolis-web-passenger/./src/components/schedules-search/form/schedules-search-form.tsx","webpack://keolis-web-passenger/./src/components/schedules-search/schedules-search.tsx","webpack://keolis-web-passenger/./src/components/schedules-search/schedules-search.module.scss","webpack://keolis-web-passenger/./src/components/transport-title-search/capsule/capsule.module.scss","webpack://keolis-web-passenger/./src/components/transport-title-search/capsule/capsule.tsx","webpack://keolis-web-passenger/./src/components/transport-title-search/transport-title/transport-title.module.scss","webpack://keolis-web-passenger/./src/components/transport-title-search/rectangular-button/rectangular-button.tsx","webpack://keolis-web-passenger/./src/components/transport-title-search/rectangular-button/rectangular-button.module.scss","webpack://keolis-web-passenger/./src/components/transport-title-search/transport-title/transport-title.tsx","webpack://keolis-web-passenger/./src/components/transport-title-search/transport-title-search.tsx","webpack://keolis-web-passenger/./src/components/transport-title-search/transport-title-search.module.scss","webpack://keolis-web-passenger/./static/images/search.png","webpack://keolis-web-passenger/./src/components/ticket-office-search/result/ticket-office-search-result.module.scss","webpack://keolis-web-passenger/./src/components/ticket-office-search/result/ticket-office-search-result.tsx","webpack://keolis-web-passenger/./static/images/ticket.svg","webpack://keolis-web-passenger/./src/components/ticket-office-search/results/ticket-office-search-results.tsx","webpack://keolis-web-passenger/./src/components/ticket-office-search/results/ticket-office-search-results.module.scss","webpack://keolis-web-passenger/./src/components/ticket-office-search/form/ticket-office-search-form.module.scss","webpack://keolis-web-passenger/./src/components/ticket-office-search/form/ticket-office-search-form.tsx","webpack://keolis-web-passenger/./src/components/ticket-office-search/map/ticket-office-search-map.module.scss","webpack://keolis-web-passenger/./src/components/ticket-office-search/map/ticket-office-search-map.tsx","webpack://keolis-web-passenger/./src/components/ticket-office-search/ticket-office-search.tsx","webpack://keolis-web-passenger/./node_modules/datocms-structured-text-to-html-string/node_modules/datocms-structured-text-utils/dist/esm/definitions.js","webpack://keolis-web-passenger/./src/components/ticket-office-search/ticket-office-search.module.scss","webpack://keolis-web-passenger/./src/components/itinerary-module/itinerary-module.tsx","webpack://keolis-web-passenger/./src/components/itinerary-module/itinerary-module.module.scss","webpack://keolis-web-passenger/./src/components/next-departures-module/next-departures-module.tsx","webpack://keolis-web-passenger/./src/components/next-departures-module/next-departures-module.module.scss","webpack://keolis-web-passenger/./src/components/info-traffic/info-traffic.module.scss","webpack://keolis-web-passenger/./src/components/info-traffic/info-traffic.tsx","webpack://keolis-web-passenger/./src/components/custom-form/custom-form.module.scss","webpack://keolis-web-passenger/./src/components/layout/form/textarea.tsx","webpack://keolis-web-passenger/./src/components/layout/form/radio-button.tsx","webpack://keolis-web-passenger/./src/components/layout/form/checkbox.tsx","webpack://keolis-web-passenger/./src/components/layout/form/select.tsx","webpack://keolis-web-passenger/./src/components/layout/form/file-input.tsx","webpack://keolis-web-passenger/./src/components/layout/form/form-error.tsx","webpack://keolis-web-passenger/./src/api/notifications.ts","webpack://keolis-web-passenger/./node_modules/datocms-structured-text-to-html-string/node_modules/datocms-structured-text-utils/dist/esm/guards.js","webpack://keolis-web-passenger/./node_modules/array-flatten/dist.es2015/index.js","webpack://keolis-web-passenger/./node_modules/datocms-structured-text-to-html-string/node_modules/datocms-structured-text-utils/dist/esm/render.js","webpack://keolis-web-passenger/./node_modules/datocms-structured-text-to-html-string/node_modules/datocms-structured-text-generic-html-renderer/dist/esm/index.js","webpack://keolis-web-passenger/./node_modules/datocms-structured-text-to-html-string/dist/esm/index.js","webpack://keolis-web-passenger/./src/components/custom-form/form-to-text.ts","webpack://keolis-web-passenger/./src/components/custom-form/field-name-checker.ts","webpack://keolis-web-passenger/./node_modules/react-google-recaptcha/lib/esm/recaptcha.js","webpack://keolis-web-passenger/./node_modules/react-async-script/lib/esm/async-script-loader.js","webpack://keolis-web-passenger/./node_modules/react-google-recaptcha/lib/esm/recaptcha-wrapper.js","webpack://keolis-web-passenger/./node_modules/react-google-recaptcha/lib/esm/index.js","webpack://keolis-web-passenger/./src/components/custom-form/custom-form.tsx","webpack://keolis-web-passenger/./src/components/website-map/website-map.module.scss","webpack://keolis-web-passenger/./src/components/website-map/website-map.tsx","webpack://keolis-web-passenger/./src/components/lost-objects/lost-objects-form.module.scss","webpack://keolis-web-passenger/./node_modules/date-fns/getYear.mjs","webpack://keolis-web-passenger/./node_modules/date-fns/getMonth.mjs","webpack://keolis-web-passenger/./src/components/layout/form/date-input.tsx","webpack://keolis-web-passenger/./src/components/layout/form/time-input.tsx","webpack://keolis-web-passenger/./src/components/lost-objects/lost-objects-form-to-text.ts","webpack://keolis-web-passenger/./src/components/lost-objects/lost-objects-form.tsx","webpack://keolis-web-passenger/./src/components/sms-alert/sms-alert-form.module.scss","webpack://keolis-web-passenger/./src/api/mobireport-alert-sms.ts","webpack://keolis-web-passenger/./src/components/sms-alert/subscribe-sms-alert-form.tsx","webpack://keolis-web-passenger/./src/components/sms-alert/sms-alert-forms.tsx","webpack://keolis-web-passenger/./src/components/info-traffic-le-pilote/info-traffic-le-pilote.tsx","webpack://keolis-web-passenger/./src/components/info-traffic-le-pilote/info-traffic-le-pilote.module.scss","webpack://keolis-web-passenger/./src/components/title-page/title-page.module.scss","webpack://keolis-web-passenger/./src/components/title-page/title-page.tsx","webpack://keolis-web-passenger/./src/components/le-pilote-next-trips-search/le-pilote-next-trips-search.module.scss","webpack://keolis-web-passenger/./src/components/le-pilote-next-trips-search/le-pilote-next-trips-search.tsx","webpack://keolis-web-passenger/./src/components/le-pilote-itinerary/le-pilote-itinerary.module.scss","webpack://keolis-web-passenger/./src/components/le-pilote-itinerary/le-pilote-itinerary-form.tsx","webpack://keolis-web-passenger/./src/components/le-pilote-itinerary/le-pilote-itinerary.tsx","webpack://keolis-web-passenger/./src/components/le-pilote-itinerary/draw-itinerary.tsx","webpack://keolis-web-passenger/./src/components/around-me-actigraph/around-me-actigraph.tsx","webpack://keolis-web-passenger/./src/components/oskar-payment-module/oskar-payment.tsx","webpack://keolis-web-passenger/./src/components/oskar-payment-module/oskar-payment.module.scss","webpack://keolis-web-passenger/./src/components/info-traffic/info-traffic-detail-module.tsx","webpack://keolis-web-passenger/./src/components/info-traffic/info-traffic-detail.module.scss","webpack://keolis-web-passenger/./src/components/ter-dakar-itinerary-search-module/ter-dakar-itinerary-search-module.module.scss","webpack://keolis-web-passenger/./src/components/ter-dakar-itinerary-search-module/ter-dakar-itinerary-search-module.tsx","webpack://keolis-web-passenger/./src/components/button/button.module.scss","webpack://keolis-web-passenger/./src/components/button/button.tsx","webpack://keolis-web-passenger/./src/components/vianavigo-itinerary/vianavigo-itinerary-script.js","webpack://keolis-web-passenger/./src/components/vianavigo-itinerary/vianavigo-itinerary.tsx","webpack://keolis-web-passenger/./src/components/vianavigo-itinerary/vianavigo-itinerary.module.scss","webpack://keolis-web-passenger/./src/components/rich-datocms-content/rich-datocms-content.tsx","webpack://keolis-web-passenger/./src/components/type-page/breadcrumb/breadcrumb.module.scss","webpack://keolis-web-passenger/./src/components/type-page/breadcrumb/breadcrumb.tsx","webpack://keolis-web-passenger/./src/components/type-page/news-blocks/news-blocks.tsx","webpack://keolis-web-passenger/./src/components/type-page/news-blocks/news-blocks.module.scss","webpack://keolis-web-passenger/./src/components/type-page/share-buttons/share-buttons.tsx","webpack://keolis-web-passenger/./src/components/type-page/share-buttons/share-buttons.module.scss","webpack://keolis-web-passenger/./src/components/type-page/side-blocks/side-blocks.module.scss","webpack://keolis-web-passenger/./src/components/type-page/side-blocks/side-block/side-block.tsx","webpack://keolis-web-passenger/./src/components/type-page/side-blocks/side-block/side-block.module.scss","webpack://keolis-web-passenger/./src/components/type-page/side-blocks/side-blocks.tsx","webpack://keolis-web-passenger/./src/components/type-page/title-banner/title-banner.tsx","webpack://keolis-web-passenger/./src/components/type-page/title-banner/title-banner.module.scss","webpack://keolis-web-passenger/./src/gtm/page-view-event.ts","webpack://keolis-web-passenger/./src/templates/type-page/type-page.module.scss","webpack://keolis-web-passenger/./node_modules/mapbox-gl/dist/mapbox-gl-csp-worker.js","webpack://keolis-web-passenger/./node_modules/@babel/runtime/helpers/toArray.js","webpack://keolis-web-passenger/./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack://keolis-web-passenger/./node_modules/core-js/internals/engine-is-browser.js","webpack://keolis-web-passenger/./node_modules/core-js/internals/engine-is-deno.js","webpack://keolis-web-passenger/./node_modules/core-js/internals/engine-is-node.js","webpack://keolis-web-passenger/./node_modules/core-js/internals/get-substitution.js","webpack://keolis-web-passenger/./node_modules/core-js/internals/is-regexp.js","webpack://keolis-web-passenger/./node_modules/core-js/internals/perform.js","webpack://keolis-web-passenger/./node_modules/core-js/internals/promise-constructor-detection.js","webpack://keolis-web-passenger/./node_modules/core-js/internals/promise-statics-incorrect-iteration.js","webpack://keolis-web-passenger/./node_modules/core-js/internals/regexp-get-flags.js","webpack://keolis-web-passenger/./node_modules/core-js/modules/es.math.hypot.js","webpack://keolis-web-passenger/./node_modules/core-js/modules/es.promise.all-settled.js","webpack://keolis-web-passenger/./node_modules/core-js/modules/es.string.replace-all.js","webpack://keolis-web-passenger/./node_modules/core-js/modules/esnext.promise.all-settled.js","webpack://keolis-web-passenger/./node_modules/core-js/modules/esnext.string.replace-all.js"],"sourcesContent":["'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;\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  return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\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      if (inheritedComponent && inheritedComponent !== objectPrototype) {\n        hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n      }\n    }\n    var keys = getOwnPropertyNames(sourceComponent);\n    if (getOwnPropertySymbols) {\n      keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n    }\n    var targetStatics = getStatics(targetComponent);\n    var sourceStatics = getStatics(sourceComponent);\n    for (var i = 0; i < keys.length; ++i) {\n      var key = keys[i];\n      if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n        var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n        try {\n          // Avoid failures from read-only properties\n          defineProperty(targetComponent, key, descriptor);\n        } catch (e) {}\n      }\n    }\n  }\n  return targetComponent;\n}\nmodule.exports = hoistNonReactStatics;","/** @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';\n\nvar b = \"function\" === typeof Symbol && Symbol.for,\n  c = b ? Symbol.for(\"react.element\") : 60103,\n  d = b ? Symbol.for(\"react.portal\") : 60106,\n  e = b ? Symbol.for(\"react.fragment\") : 60107,\n  f = b ? Symbol.for(\"react.strict_mode\") : 60108,\n  g = b ? Symbol.for(\"react.profiler\") : 60114,\n  h = b ? Symbol.for(\"react.provider\") : 60109,\n  k = b ? Symbol.for(\"react.context\") : 60110,\n  l = b ? Symbol.for(\"react.async_mode\") : 60111,\n  m = b ? Symbol.for(\"react.concurrent_mode\") : 60111,\n  n = b ? Symbol.for(\"react.forward_ref\") : 60112,\n  p = b ? Symbol.for(\"react.suspense\") : 60113,\n  q = b ? Symbol.for(\"react.suspense_list\") : 60120,\n  r = b ? Symbol.for(\"react.memo\") : 60115,\n  t = b ? Symbol.for(\"react.lazy\") : 60116,\n  v = b ? Symbol.for(\"react.block\") : 60121,\n  w = b ? Symbol.for(\"react.fundamental\") : 60117,\n  x = b ? Symbol.for(\"react.responder\") : 60118,\n  y = b ? Symbol.for(\"react.scope\") : 60119;\nfunction z(a) {\n  if (\"object\" === typeof a && null !== a) {\n    var u = a.$$typeof;\n    switch (u) {\n      case c:\n        switch (a = a.type, a) {\n          case l:\n          case m:\n          case e:\n          case g:\n          case f:\n          case p:\n            return a;\n          default:\n            switch (a = a && a.$$typeof, a) {\n              case k:\n              case n:\n              case t:\n              case r:\n              case h:\n                return a;\n              default:\n                return u;\n            }\n        }\n      case d:\n        return u;\n    }\n  }\n}\nfunction A(a) {\n  return z(a) === m;\n}\nexports.AsyncMode = l;\nexports.ConcurrentMode = m;\nexports.ContextConsumer = k;\nexports.ContextProvider = h;\nexports.Element = c;\nexports.ForwardRef = n;\nexports.Fragment = e;\nexports.Lazy = t;\nexports.Memo = r;\nexports.Portal = d;\nexports.Profiler = g;\nexports.StrictMode = f;\nexports.Suspense = p;\nexports.isAsyncMode = function (a) {\n  return A(a) || z(a) === l;\n};\nexports.isConcurrentMode = A;\nexports.isContextConsumer = function (a) {\n  return z(a) === k;\n};\nexports.isContextProvider = function (a) {\n  return z(a) === h;\n};\nexports.isElement = function (a) {\n  return \"object\" === typeof a && null !== a && a.$$typeof === c;\n};\nexports.isForwardRef = function (a) {\n  return z(a) === n;\n};\nexports.isFragment = function (a) {\n  return z(a) === e;\n};\nexports.isLazy = function (a) {\n  return z(a) === t;\n};\nexports.isMemo = function (a) {\n  return z(a) === r;\n};\nexports.isPortal = function (a) {\n  return z(a) === d;\n};\nexports.isProfiler = function (a) {\n  return z(a) === g;\n};\nexports.isStrictMode = function (a) {\n  return z(a) === f;\n};\nexports.isSuspense = function (a) {\n  return z(a) === p;\n};\nexports.isValidElementType = function (a) {\n  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);\n};\nexports.typeOf = z;","'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}","\"use strict\";\n\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)) t[p] = s[p];\n    }\n    return t;\n  };\n  return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nvar named_references_1 = require(\"./named-references\");\nvar numeric_unicode_map_1 = require(\"./numeric-unicode-map\");\nvar surrogate_pairs_1 = require(\"./surrogate-pairs\");\nvar allNamedReferences = __assign(__assign({}, named_references_1.namedReferences), {\n  all: named_references_1.namedReferences.html5\n});\nfunction replaceUsingRegExp(macroText, macroRegExp, macroReplacer) {\n  macroRegExp.lastIndex = 0;\n  var replaceMatch = macroRegExp.exec(macroText);\n  var replaceResult;\n  if (replaceMatch) {\n    replaceResult = \"\";\n    var replaceLastIndex = 0;\n    do {\n      if (replaceLastIndex !== replaceMatch.index) {\n        replaceResult += macroText.substring(replaceLastIndex, replaceMatch.index);\n      }\n      var replaceInput = replaceMatch[0];\n      replaceResult += macroReplacer(replaceInput);\n      replaceLastIndex = replaceMatch.index + replaceInput.length;\n    } while (replaceMatch = macroRegExp.exec(macroText));\n    if (replaceLastIndex !== macroText.length) {\n      replaceResult += macroText.substring(replaceLastIndex);\n    }\n  } else {\n    replaceResult = macroText;\n  }\n  return replaceResult;\n}\nvar encodeRegExps = {\n  specialChars: /[<>'\"&]/g,\n  nonAscii: /[<>'\"&\\u0080-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/g,\n  nonAsciiPrintable: /[<>'\"&\\x01-\\x08\\x11-\\x15\\x17-\\x1F\\x7f-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/g,\n  nonAsciiPrintableOnly: /[\\x01-\\x08\\x11-\\x15\\x17-\\x1F\\x7f-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/g,\n  extensive: /[\\x01-\\x0c\\x0e-\\x1f\\x21-\\x2c\\x2e-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7d\\x7f-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/g\n};\nvar defaultEncodeOptions = {\n  mode: \"specialChars\",\n  level: \"all\",\n  numeric: \"decimal\"\n};\nfunction encode(text, _a) {\n  var _b = _a === void 0 ? defaultEncodeOptions : _a,\n    _c = _b.mode,\n    mode = _c === void 0 ? \"specialChars\" : _c,\n    _d = _b.numeric,\n    numeric = _d === void 0 ? \"decimal\" : _d,\n    _e = _b.level,\n    level = _e === void 0 ? \"all\" : _e;\n  if (!text) {\n    return \"\";\n  }\n  var encodeRegExp = encodeRegExps[mode];\n  var references = allNamedReferences[level].characters;\n  var isHex = numeric === \"hexadecimal\";\n  return replaceUsingRegExp(text, encodeRegExp, function (input) {\n    var result = references[input];\n    if (!result) {\n      var code = input.length > 1 ? surrogate_pairs_1.getCodePoint(input, 0) : input.charCodeAt(0);\n      result = (isHex ? \"&#x\" + code.toString(16) : \"&#\" + code) + \";\";\n    }\n    return result;\n  });\n}\nexports.encode = encode;\nvar defaultDecodeOptions = {\n  scope: \"body\",\n  level: \"all\"\n};\nvar strict = /&(?:#\\d+|#[xX][\\da-fA-F]+|[0-9a-zA-Z]+);/g;\nvar attribute = /&(?:#\\d+|#[xX][\\da-fA-F]+|[0-9a-zA-Z]+)[;=]?/g;\nvar baseDecodeRegExps = {\n  xml: {\n    strict: strict,\n    attribute: attribute,\n    body: named_references_1.bodyRegExps.xml\n  },\n  html4: {\n    strict: strict,\n    attribute: attribute,\n    body: named_references_1.bodyRegExps.html4\n  },\n  html5: {\n    strict: strict,\n    attribute: attribute,\n    body: named_references_1.bodyRegExps.html5\n  }\n};\nvar decodeRegExps = __assign(__assign({}, baseDecodeRegExps), {\n  all: baseDecodeRegExps.html5\n});\nvar fromCharCode = String.fromCharCode;\nvar outOfBoundsChar = fromCharCode(65533);\nvar defaultDecodeEntityOptions = {\n  level: \"all\"\n};\nfunction getDecodedEntity(entity, references, isAttribute, isStrict) {\n  var decodeResult = entity;\n  var decodeEntityLastChar = entity[entity.length - 1];\n  if (isAttribute && decodeEntityLastChar === \"=\") {\n    decodeResult = entity;\n  } else if (isStrict && decodeEntityLastChar !== \";\") {\n    decodeResult = entity;\n  } else {\n    var decodeResultByReference = references[entity];\n    if (decodeResultByReference) {\n      decodeResult = decodeResultByReference;\n    } else if (entity[0] === \"&\" && entity[1] === \"#\") {\n      var decodeSecondChar = entity[2];\n      var decodeCode = decodeSecondChar == \"x\" || decodeSecondChar == \"X\" ? parseInt(entity.substr(3), 16) : parseInt(entity.substr(2));\n      decodeResult = decodeCode >= 1114111 ? outOfBoundsChar : decodeCode > 65535 ? surrogate_pairs_1.fromCodePoint(decodeCode) : fromCharCode(numeric_unicode_map_1.numericUnicodeMap[decodeCode] || decodeCode);\n    }\n  }\n  return decodeResult;\n}\nfunction decodeEntity(entity, _a) {\n  var _b = (_a === void 0 ? defaultDecodeEntityOptions : _a).level,\n    level = _b === void 0 ? \"all\" : _b;\n  if (!entity) {\n    return \"\";\n  }\n  return getDecodedEntity(entity, allNamedReferences[level].entities, false, false);\n}\nexports.decodeEntity = decodeEntity;\nfunction decode(text, _a) {\n  var _b = _a === void 0 ? defaultDecodeOptions : _a,\n    _c = _b.level,\n    level = _c === void 0 ? \"all\" : _c,\n    _d = _b.scope,\n    scope = _d === void 0 ? level === \"xml\" ? \"strict\" : \"body\" : _d;\n  if (!text) {\n    return \"\";\n  }\n  var decodeRegExp = decodeRegExps[level][scope];\n  var references = allNamedReferences[level].entities;\n  var isAttribute = scope === \"attribute\";\n  var isStrict = scope === \"strict\";\n  return replaceUsingRegExp(text, decodeRegExp, function (entity) {\n    return getDecodedEntity(entity, references, isAttribute, isStrict);\n  });\n}\nexports.decode = decode;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.bodyRegExps = {\n  xml: /&(?:#\\d+|#[xX][\\da-fA-F]+|[0-9a-zA-Z]+);?/g,\n  html4: /&notin;|&(?:nbsp|iexcl|cent|pound|curren|yen|brvbar|sect|uml|copy|ordf|laquo|not|shy|reg|macr|deg|plusmn|sup2|sup3|acute|micro|para|middot|cedil|sup1|ordm|raquo|frac14|frac12|frac34|iquest|Agrave|Aacute|Acirc|Atilde|Auml|Aring|AElig|Ccedil|Egrave|Eacute|Ecirc|Euml|Igrave|Iacute|Icirc|Iuml|ETH|Ntilde|Ograve|Oacute|Ocirc|Otilde|Ouml|times|Oslash|Ugrave|Uacute|Ucirc|Uuml|Yacute|THORN|szlig|agrave|aacute|acirc|atilde|auml|aring|aelig|ccedil|egrave|eacute|ecirc|euml|igrave|iacute|icirc|iuml|eth|ntilde|ograve|oacute|ocirc|otilde|ouml|divide|oslash|ugrave|uacute|ucirc|uuml|yacute|thorn|yuml|quot|amp|lt|gt|#\\d+|#[xX][\\da-fA-F]+|[0-9a-zA-Z]+);?/g,\n  html5: /&centerdot;|&copysr;|&divideontimes;|&gtcc;|&gtcir;|&gtdot;|&gtlPar;|&gtquest;|&gtrapprox;|&gtrarr;|&gtrdot;|&gtreqless;|&gtreqqless;|&gtrless;|&gtrsim;|&ltcc;|&ltcir;|&ltdot;|&lthree;|&ltimes;|&ltlarr;|&ltquest;|&ltrPar;|&ltri;|&ltrie;|&ltrif;|&notin;|&notinE;|&notindot;|&notinva;|&notinvb;|&notinvc;|&notni;|&notniva;|&notnivb;|&notnivc;|&parallel;|&timesb;|&timesbar;|&timesd;|&(?:AElig|AMP|Aacute|Acirc|Agrave|Aring|Atilde|Auml|COPY|Ccedil|ETH|Eacute|Ecirc|Egrave|Euml|GT|Iacute|Icirc|Igrave|Iuml|LT|Ntilde|Oacute|Ocirc|Ograve|Oslash|Otilde|Ouml|QUOT|REG|THORN|Uacute|Ucirc|Ugrave|Uuml|Yacute|aacute|acirc|acute|aelig|agrave|amp|aring|atilde|auml|brvbar|ccedil|cedil|cent|copy|curren|deg|divide|eacute|ecirc|egrave|eth|euml|frac12|frac14|frac34|gt|iacute|icirc|iexcl|igrave|iquest|iuml|laquo|lt|macr|micro|middot|nbsp|not|ntilde|oacute|ocirc|ograve|ordf|ordm|oslash|otilde|ouml|para|plusmn|pound|quot|raquo|reg|sect|shy|sup1|sup2|sup3|szlig|thorn|times|uacute|ucirc|ugrave|uml|uuml|yacute|yen|yuml|#\\d+|#[xX][\\da-fA-F]+|[0-9a-zA-Z]+);?/g\n};\nexports.namedReferences = {\n  xml: {\n    entities: {\n      \"&lt;\": \"<\",\n      \"&gt;\": \">\",\n      \"&quot;\": '\"',\n      \"&apos;\": \"'\",\n      \"&amp;\": \"&\"\n    },\n    characters: {\n      \"<\": \"&lt;\",\n      \">\": \"&gt;\",\n      '\"': \"&quot;\",\n      \"'\": \"&apos;\",\n      \"&\": \"&amp;\"\n    }\n  },\n  html4: {\n    entities: {\n      \"&apos;\": \"'\",\n      \"&nbsp\": \" \",\n      \"&nbsp;\": \" \",\n      \"&iexcl\": \"¡\",\n      \"&iexcl;\": \"¡\",\n      \"&cent\": \"¢\",\n      \"&cent;\": \"¢\",\n      \"&pound\": \"£\",\n      \"&pound;\": \"£\",\n      \"&curren\": \"¤\",\n      \"&curren;\": \"¤\",\n      \"&yen\": \"¥\",\n      \"&yen;\": \"¥\",\n      \"&brvbar\": \"¦\",\n      \"&brvbar;\": \"¦\",\n      \"&sect\": \"§\",\n      \"&sect;\": \"§\",\n      \"&uml\": \"¨\",\n      \"&uml;\": \"¨\",\n      \"&copy\": \"©\",\n      \"&copy;\": \"©\",\n      \"&ordf\": \"ª\",\n      \"&ordf;\": \"ª\",\n      \"&laquo\": \"«\",\n      \"&laquo;\": \"«\",\n      \"&not\": \"¬\",\n      \"&not;\": \"¬\",\n      \"&shy\": \"­\",\n      \"&shy;\": \"­\",\n      \"&reg\": \"®\",\n      \"&reg;\": \"®\",\n      \"&macr\": \"¯\",\n      \"&macr;\": \"¯\",\n      \"&deg\": \"°\",\n      \"&deg;\": \"°\",\n      \"&plusmn\": \"±\",\n      \"&plusmn;\": \"±\",\n      \"&sup2\": \"²\",\n      \"&sup2;\": \"²\",\n      \"&sup3\": \"³\",\n      \"&sup3;\": \"³\",\n      \"&acute\": \"´\",\n      \"&acute;\": \"´\",\n      \"&micro\": \"µ\",\n      \"&micro;\": \"µ\",\n      \"&para\": \"¶\",\n      \"&para;\": \"¶\",\n      \"&middot\": \"·\",\n      \"&middot;\": \"·\",\n      \"&cedil\": \"¸\",\n      \"&cedil;\": \"¸\",\n      \"&sup1\": \"¹\",\n      \"&sup1;\": \"¹\",\n      \"&ordm\": \"º\",\n      \"&ordm;\": \"º\",\n      \"&raquo\": \"»\",\n      \"&raquo;\": \"»\",\n      \"&frac14\": \"¼\",\n      \"&frac14;\": \"¼\",\n      \"&frac12\": \"½\",\n      \"&frac12;\": \"½\",\n      \"&frac34\": \"¾\",\n      \"&frac34;\": \"¾\",\n      \"&iquest\": \"¿\",\n      \"&iquest;\": \"¿\",\n      \"&Agrave\": \"À\",\n      \"&Agrave;\": \"À\",\n      \"&Aacute\": \"Á\",\n      \"&Aacute;\": \"Á\",\n      \"&Acirc\": \"Â\",\n      \"&Acirc;\": \"Â\",\n      \"&Atilde\": \"Ã\",\n      \"&Atilde;\": \"Ã\",\n      \"&Auml\": \"Ä\",\n      \"&Auml;\": \"Ä\",\n      \"&Aring\": \"Å\",\n      \"&Aring;\": \"Å\",\n      \"&AElig\": \"Æ\",\n      \"&AElig;\": \"Æ\",\n      \"&Ccedil\": \"Ç\",\n      \"&Ccedil;\": \"Ç\",\n      \"&Egrave\": \"È\",\n      \"&Egrave;\": \"È\",\n      \"&Eacute\": \"É\",\n      \"&Eacute;\": \"É\",\n      \"&Ecirc\": \"Ê\",\n      \"&Ecirc;\": \"Ê\",\n      \"&Euml\": \"Ë\",\n      \"&Euml;\": \"Ë\",\n      \"&Igrave\": \"Ì\",\n      \"&Igrave;\": \"Ì\",\n      \"&Iacute\": \"Í\",\n      \"&Iacute;\": \"Í\",\n      \"&Icirc\": \"Î\",\n      \"&Icirc;\": \"Î\",\n      \"&Iuml\": \"Ï\",\n      \"&Iuml;\": \"Ï\",\n      \"&ETH\": \"Ð\",\n      \"&ETH;\": \"Ð\",\n      \"&Ntilde\": \"Ñ\",\n      \"&Ntilde;\": \"Ñ\",\n      \"&Ograve\": \"Ò\",\n      \"&Ograve;\": \"Ò\",\n      \"&Oacute\": \"Ó\",\n      \"&Oacute;\": \"Ó\",\n      \"&Ocirc\": \"Ô\",\n      \"&Ocirc;\": \"Ô\",\n      \"&Otilde\": \"Õ\",\n      \"&Otilde;\": \"Õ\",\n      \"&Ouml\": \"Ö\",\n      \"&Ouml;\": \"Ö\",\n      \"&times\": \"×\",\n      \"&times;\": \"×\",\n      \"&Oslash\": \"Ø\",\n      \"&Oslash;\": \"Ø\",\n      \"&Ugrave\": \"Ù\",\n      \"&Ugrave;\": \"Ù\",\n      \"&Uacute\": \"Ú\",\n      \"&Uacute;\": \"Ú\",\n      \"&Ucirc\": \"Û\",\n      \"&Ucirc;\": \"Û\",\n      \"&Uuml\": \"Ü\",\n      \"&Uuml;\": \"Ü\",\n      \"&Yacute\": \"Ý\",\n      \"&Yacute;\": \"Ý\",\n      \"&THORN\": \"Þ\",\n      \"&THORN;\": \"Þ\",\n      \"&szlig\": \"ß\",\n      \"&szlig;\": \"ß\",\n      \"&agrave\": \"à\",\n      \"&agrave;\": \"à\",\n      \"&aacute\": \"á\",\n      \"&aacute;\": \"á\",\n      \"&acirc\": \"â\",\n      \"&acirc;\": \"â\",\n      \"&atilde\": \"ã\",\n      \"&atilde;\": \"ã\",\n      \"&auml\": \"ä\",\n      \"&auml;\": \"ä\",\n      \"&aring\": \"å\",\n      \"&aring;\": \"å\",\n      \"&aelig\": \"æ\",\n      \"&aelig;\": \"æ\",\n      \"&ccedil\": \"ç\",\n      \"&ccedil;\": \"ç\",\n      \"&egrave\": \"è\",\n      \"&egrave;\": \"è\",\n      \"&eacute\": \"é\",\n      \"&eacute;\": \"é\",\n      \"&ecirc\": \"ê\",\n      \"&ecirc;\": \"ê\",\n      \"&euml\": \"ë\",\n      \"&euml;\": \"ë\",\n      \"&igrave\": \"ì\",\n      \"&igrave;\": \"ì\",\n      \"&iacute\": \"í\",\n      \"&iacute;\": \"í\",\n      \"&icirc\": \"î\",\n      \"&icirc;\": \"î\",\n      \"&iuml\": \"ï\",\n      \"&iuml;\": \"ï\",\n      \"&eth\": \"ð\",\n      \"&eth;\": \"ð\",\n      \"&ntilde\": \"ñ\",\n      \"&ntilde;\": \"ñ\",\n      \"&ograve\": \"ò\",\n      \"&ograve;\": \"ò\",\n      \"&oacute\": \"ó\",\n      \"&oacute;\": \"ó\",\n      \"&ocirc\": \"ô\",\n      \"&ocirc;\": \"ô\",\n      \"&otilde\": \"õ\",\n      \"&otilde;\": \"õ\",\n      \"&ouml\": \"ö\",\n      \"&ouml;\": \"ö\",\n      \"&divide\": \"÷\",\n      \"&divide;\": \"÷\",\n      \"&oslash\": \"ø\",\n      \"&oslash;\": \"ø\",\n      \"&ugrave\": \"ù\",\n      \"&ugrave;\": \"ù\",\n      \"&uacute\": \"ú\",\n      \"&uacute;\": \"ú\",\n      \"&ucirc\": \"û\",\n      \"&ucirc;\": \"û\",\n      \"&uuml\": \"ü\",\n      \"&uuml;\": \"ü\",\n      \"&yacute\": \"ý\",\n      \"&yacute;\": \"ý\",\n      \"&thorn\": \"þ\",\n      \"&thorn;\": \"þ\",\n      \"&yuml\": \"ÿ\",\n      \"&yuml;\": \"ÿ\",\n      \"&quot\": '\"',\n      \"&quot;\": '\"',\n      \"&amp\": \"&\",\n      \"&amp;\": \"&\",\n      \"&lt\": \"<\",\n      \"&lt;\": \"<\",\n      \"&gt\": \">\",\n      \"&gt;\": \">\",\n      \"&OElig;\": \"Œ\",\n      \"&oelig;\": \"œ\",\n      \"&Scaron;\": \"Š\",\n      \"&scaron;\": \"š\",\n      \"&Yuml;\": \"Ÿ\",\n      \"&circ;\": \"ˆ\",\n      \"&tilde;\": \"˜\",\n      \"&ensp;\": \" \",\n      \"&emsp;\": \" \",\n      \"&thinsp;\": \" \",\n      \"&zwnj;\": \"‌\",\n      \"&zwj;\": \"‍\",\n      \"&lrm;\": \"‎\",\n      \"&rlm;\": \"‏\",\n      \"&ndash;\": \"–\",\n      \"&mdash;\": \"—\",\n      \"&lsquo;\": \"‘\",\n      \"&rsquo;\": \"’\",\n      \"&sbquo;\": \"‚\",\n      \"&ldquo;\": \"“\",\n      \"&rdquo;\": \"”\",\n      \"&bdquo;\": \"„\",\n      \"&dagger;\": \"†\",\n      \"&Dagger;\": \"‡\",\n      \"&permil;\": \"‰\",\n      \"&lsaquo;\": \"‹\",\n      \"&rsaquo;\": \"›\",\n      \"&euro;\": \"€\",\n      \"&fnof;\": \"ƒ\",\n      \"&Alpha;\": \"Α\",\n      \"&Beta;\": \"Β\",\n      \"&Gamma;\": \"Γ\",\n      \"&Delta;\": \"Δ\",\n      \"&Epsilon;\": \"Ε\",\n      \"&Zeta;\": \"Ζ\",\n      \"&Eta;\": \"Η\",\n      \"&Theta;\": \"Θ\",\n      \"&Iota;\": \"Ι\",\n      \"&Kappa;\": \"Κ\",\n      \"&Lambda;\": \"Λ\",\n      \"&Mu;\": \"Μ\",\n      \"&Nu;\": \"Ν\",\n      \"&Xi;\": \"Ξ\",\n      \"&Omicron;\": \"Ο\",\n      \"&Pi;\": \"Π\",\n      \"&Rho;\": \"Ρ\",\n      \"&Sigma;\": \"Σ\",\n      \"&Tau;\": \"Τ\",\n      \"&Upsilon;\": \"Υ\",\n      \"&Phi;\": \"Φ\",\n      \"&Chi;\": \"Χ\",\n      \"&Psi;\": \"Ψ\",\n      \"&Omega;\": \"Ω\",\n      \"&alpha;\": \"α\",\n      \"&beta;\": \"β\",\n      \"&gamma;\": \"γ\",\n      \"&delta;\": \"δ\",\n      \"&epsilon;\": \"ε\",\n      \"&zeta;\": \"ζ\",\n      \"&eta;\": \"η\",\n      \"&theta;\": \"θ\",\n      \"&iota;\": \"ι\",\n      \"&kappa;\": \"κ\",\n      \"&lambda;\": \"λ\",\n      \"&mu;\": \"μ\",\n      \"&nu;\": \"ν\",\n      \"&xi;\": \"ξ\",\n      \"&omicron;\": \"ο\",\n      \"&pi;\": \"π\",\n      \"&rho;\": \"ρ\",\n      \"&sigmaf;\": \"ς\",\n      \"&sigma;\": \"σ\",\n      \"&tau;\": \"τ\",\n      \"&upsilon;\": \"υ\",\n      \"&phi;\": \"φ\",\n      \"&chi;\": \"χ\",\n      \"&psi;\": \"ψ\",\n      \"&omega;\": \"ω\",\n      \"&thetasym;\": \"ϑ\",\n      \"&upsih;\": \"ϒ\",\n      \"&piv;\": \"ϖ\",\n      \"&bull;\": \"•\",\n      \"&hellip;\": \"…\",\n      \"&prime;\": \"′\",\n      \"&Prime;\": \"″\",\n      \"&oline;\": \"‾\",\n      \"&frasl;\": \"⁄\",\n      \"&weierp;\": \"℘\",\n      \"&image;\": \"ℑ\",\n      \"&real;\": \"ℜ\",\n      \"&trade;\": \"™\",\n      \"&alefsym;\": \"ℵ\",\n      \"&larr;\": \"←\",\n      \"&uarr;\": \"↑\",\n      \"&rarr;\": \"→\",\n      \"&darr;\": \"↓\",\n      \"&harr;\": \"↔\",\n      \"&crarr;\": \"↵\",\n      \"&lArr;\": \"⇐\",\n      \"&uArr;\": \"⇑\",\n      \"&rArr;\": \"⇒\",\n      \"&dArr;\": \"⇓\",\n      \"&hArr;\": \"⇔\",\n      \"&forall;\": \"∀\",\n      \"&part;\": \"∂\",\n      \"&exist;\": \"∃\",\n      \"&empty;\": \"∅\",\n      \"&nabla;\": \"∇\",\n      \"&isin;\": \"∈\",\n      \"&notin;\": \"∉\",\n      \"&ni;\": \"∋\",\n      \"&prod;\": \"∏\",\n      \"&sum;\": \"∑\",\n      \"&minus;\": \"−\",\n      \"&lowast;\": \"∗\",\n      \"&radic;\": \"√\",\n      \"&prop;\": \"∝\",\n      \"&infin;\": \"∞\",\n      \"&ang;\": \"∠\",\n      \"&and;\": \"∧\",\n      \"&or;\": \"∨\",\n      \"&cap;\": \"∩\",\n      \"&cup;\": \"∪\",\n      \"&int;\": \"∫\",\n      \"&there4;\": \"∴\",\n      \"&sim;\": \"∼\",\n      \"&cong;\": \"≅\",\n      \"&asymp;\": \"≈\",\n      \"&ne;\": \"≠\",\n      \"&equiv;\": \"≡\",\n      \"&le;\": \"≤\",\n      \"&ge;\": \"≥\",\n      \"&sub;\": \"⊂\",\n      \"&sup;\": \"⊃\",\n      \"&nsub;\": \"⊄\",\n      \"&sube;\": \"⊆\",\n      \"&supe;\": \"⊇\",\n      \"&oplus;\": \"⊕\",\n      \"&otimes;\": \"⊗\",\n      \"&perp;\": \"⊥\",\n      \"&sdot;\": \"⋅\",\n      \"&lceil;\": \"⌈\",\n      \"&rceil;\": \"⌉\",\n      \"&lfloor;\": \"⌊\",\n      \"&rfloor;\": \"⌋\",\n      \"&lang;\": \"〈\",\n      \"&rang;\": \"〉\",\n      \"&loz;\": \"◊\",\n      \"&spades;\": \"♠\",\n      \"&clubs;\": \"♣\",\n      \"&hearts;\": \"♥\",\n      \"&diams;\": \"♦\"\n    },\n    characters: {\n      \"'\": \"&apos;\",\n      \" \": \"&nbsp;\",\n      \"¡\": \"&iexcl;\",\n      \"¢\": \"&cent;\",\n      \"£\": \"&pound;\",\n      \"¤\": \"&curren;\",\n      \"¥\": \"&yen;\",\n      \"¦\": \"&brvbar;\",\n      \"§\": \"&sect;\",\n      \"¨\": \"&uml;\",\n      \"©\": \"&copy;\",\n      \"ª\": \"&ordf;\",\n      \"«\": \"&laquo;\",\n      \"¬\": \"&not;\",\n      \"­\": \"&shy;\",\n      \"®\": \"&reg;\",\n      \"¯\": \"&macr;\",\n      \"°\": \"&deg;\",\n      \"±\": \"&plusmn;\",\n      \"²\": \"&sup2;\",\n      \"³\": \"&sup3;\",\n      \"´\": \"&acute;\",\n      \"µ\": \"&micro;\",\n      \"¶\": \"&para;\",\n      \"·\": \"&middot;\",\n      \"¸\": \"&cedil;\",\n      \"¹\": \"&sup1;\",\n      \"º\": \"&ordm;\",\n      \"»\": \"&raquo;\",\n      \"¼\": \"&frac14;\",\n      \"½\": \"&frac12;\",\n      \"¾\": \"&frac34;\",\n      \"¿\": \"&iquest;\",\n      \"À\": \"&Agrave;\",\n      \"Á\": \"&Aacute;\",\n      \"Â\": \"&Acirc;\",\n      \"Ã\": \"&Atilde;\",\n      \"Ä\": \"&Auml;\",\n      \"Å\": \"&Aring;\",\n      \"Æ\": \"&AElig;\",\n      \"Ç\": \"&Ccedil;\",\n      \"È\": \"&Egrave;\",\n      \"É\": \"&Eacute;\",\n      \"Ê\": \"&Ecirc;\",\n      \"Ë\": \"&Euml;\",\n      \"Ì\": \"&Igrave;\",\n      \"Í\": \"&Iacute;\",\n      \"Î\": \"&Icirc;\",\n      \"Ï\": \"&Iuml;\",\n      \"Ð\": \"&ETH;\",\n      \"Ñ\": \"&Ntilde;\",\n      \"Ò\": \"&Ograve;\",\n      \"Ó\": \"&Oacute;\",\n      \"Ô\": \"&Ocirc;\",\n      \"Õ\": \"&Otilde;\",\n      \"Ö\": \"&Ouml;\",\n      \"×\": \"&times;\",\n      \"Ø\": \"&Oslash;\",\n      \"Ù\": \"&Ugrave;\",\n      \"Ú\": \"&Uacute;\",\n      \"Û\": \"&Ucirc;\",\n      \"Ü\": \"&Uuml;\",\n      \"Ý\": \"&Yacute;\",\n      \"Þ\": \"&THORN;\",\n      \"ß\": \"&szlig;\",\n      \"à\": \"&agrave;\",\n      \"á\": \"&aacute;\",\n      \"â\": \"&acirc;\",\n      \"ã\": \"&atilde;\",\n      \"ä\": \"&auml;\",\n      \"å\": \"&aring;\",\n      \"æ\": \"&aelig;\",\n      \"ç\": \"&ccedil;\",\n      \"è\": \"&egrave;\",\n      \"é\": \"&eacute;\",\n      \"ê\": \"&ecirc;\",\n      \"ë\": \"&euml;\",\n      \"ì\": \"&igrave;\",\n      \"í\": \"&iacute;\",\n      \"î\": \"&icirc;\",\n      \"ï\": \"&iuml;\",\n      \"ð\": \"&eth;\",\n      \"ñ\": \"&ntilde;\",\n      \"ò\": \"&ograve;\",\n      \"ó\": \"&oacute;\",\n      \"ô\": \"&ocirc;\",\n      \"õ\": \"&otilde;\",\n      \"ö\": \"&ouml;\",\n      \"÷\": \"&divide;\",\n      \"ø\": \"&oslash;\",\n      \"ù\": \"&ugrave;\",\n      \"ú\": \"&uacute;\",\n      \"û\": \"&ucirc;\",\n      \"ü\": \"&uuml;\",\n      \"ý\": \"&yacute;\",\n      \"þ\": \"&thorn;\",\n      \"ÿ\": \"&yuml;\",\n      '\"': \"&quot;\",\n      \"&\": \"&amp;\",\n      \"<\": \"&lt;\",\n      \">\": \"&gt;\",\n      \"Œ\": \"&OElig;\",\n      \"œ\": \"&oelig;\",\n      \"Š\": \"&Scaron;\",\n      \"š\": \"&scaron;\",\n      \"Ÿ\": \"&Yuml;\",\n      \"ˆ\": \"&circ;\",\n      \"˜\": \"&tilde;\",\n      \" \": \"&ensp;\",\n      \" \": \"&emsp;\",\n      \" \": \"&thinsp;\",\n      \"‌\": \"&zwnj;\",\n      \"‍\": \"&zwj;\",\n      \"‎\": \"&lrm;\",\n      \"‏\": \"&rlm;\",\n      \"–\": \"&ndash;\",\n      \"—\": \"&mdash;\",\n      \"‘\": \"&lsquo;\",\n      \"’\": \"&rsquo;\",\n      \"‚\": \"&sbquo;\",\n      \"“\": \"&ldquo;\",\n      \"”\": \"&rdquo;\",\n      \"„\": \"&bdquo;\",\n      \"†\": \"&dagger;\",\n      \"‡\": \"&Dagger;\",\n      \"‰\": \"&permil;\",\n      \"‹\": \"&lsaquo;\",\n      \"›\": \"&rsaquo;\",\n      \"€\": \"&euro;\",\n      \"ƒ\": \"&fnof;\",\n      \"Α\": \"&Alpha;\",\n      \"Β\": \"&Beta;\",\n      \"Γ\": \"&Gamma;\",\n      \"Δ\": \"&Delta;\",\n      \"Ε\": \"&Epsilon;\",\n      \"Ζ\": \"&Zeta;\",\n      \"Η\": \"&Eta;\",\n      \"Θ\": \"&Theta;\",\n      \"Ι\": \"&Iota;\",\n      \"Κ\": \"&Kappa;\",\n      \"Λ\": \"&Lambda;\",\n      \"Μ\": \"&Mu;\",\n      \"Ν\": \"&Nu;\",\n      \"Ξ\": \"&Xi;\",\n      \"Ο\": \"&Omicron;\",\n      \"Π\": \"&Pi;\",\n      \"Ρ\": \"&Rho;\",\n      \"Σ\": \"&Sigma;\",\n      \"Τ\": \"&Tau;\",\n      \"Υ\": \"&Upsilon;\",\n      \"Φ\": \"&Phi;\",\n      \"Χ\": \"&Chi;\",\n      \"Ψ\": \"&Psi;\",\n      \"Ω\": \"&Omega;\",\n      \"α\": \"&alpha;\",\n      \"β\": \"&beta;\",\n      \"γ\": \"&gamma;\",\n      \"δ\": \"&delta;\",\n      \"ε\": \"&epsilon;\",\n      \"ζ\": \"&zeta;\",\n      \"η\": \"&eta;\",\n      \"θ\": \"&theta;\",\n      \"ι\": \"&iota;\",\n      \"κ\": \"&kappa;\",\n      \"λ\": \"&lambda;\",\n      \"μ\": \"&mu;\",\n      \"ν\": \"&nu;\",\n      \"ξ\": \"&xi;\",\n      \"ο\": \"&omicron;\",\n      \"π\": \"&pi;\",\n      \"ρ\": \"&rho;\",\n      \"ς\": \"&sigmaf;\",\n      \"σ\": \"&sigma;\",\n      \"τ\": \"&tau;\",\n      \"υ\": \"&upsilon;\",\n      \"φ\": \"&phi;\",\n      \"χ\": \"&chi;\",\n      \"ψ\": \"&psi;\",\n      \"ω\": \"&omega;\",\n      \"ϑ\": \"&thetasym;\",\n      \"ϒ\": \"&upsih;\",\n      \"ϖ\": \"&piv;\",\n      \"•\": \"&bull;\",\n      \"…\": \"&hellip;\",\n      \"′\": \"&prime;\",\n      \"″\": \"&Prime;\",\n      \"‾\": \"&oline;\",\n      \"⁄\": \"&frasl;\",\n      \"℘\": \"&weierp;\",\n      \"ℑ\": \"&image;\",\n      \"ℜ\": \"&real;\",\n      \"™\": \"&trade;\",\n      \"ℵ\": \"&alefsym;\",\n      \"←\": \"&larr;\",\n      \"↑\": \"&uarr;\",\n      \"→\": \"&rarr;\",\n      \"↓\": \"&darr;\",\n      \"↔\": \"&harr;\",\n      \"↵\": \"&crarr;\",\n      \"⇐\": \"&lArr;\",\n      \"⇑\": \"&uArr;\",\n      \"⇒\": \"&rArr;\",\n      \"⇓\": \"&dArr;\",\n      \"⇔\": \"&hArr;\",\n      \"∀\": \"&forall;\",\n      \"∂\": \"&part;\",\n      \"∃\": \"&exist;\",\n      \"∅\": \"&empty;\",\n      \"∇\": \"&nabla;\",\n      \"∈\": \"&isin;\",\n      \"∉\": \"&notin;\",\n      \"∋\": \"&ni;\",\n      \"∏\": \"&prod;\",\n      \"∑\": \"&sum;\",\n      \"−\": \"&minus;\",\n      \"∗\": \"&lowast;\",\n      \"√\": \"&radic;\",\n      \"∝\": \"&prop;\",\n      \"∞\": \"&infin;\",\n      \"∠\": \"&ang;\",\n      \"∧\": \"&and;\",\n      \"∨\": \"&or;\",\n      \"∩\": \"&cap;\",\n      \"∪\": \"&cup;\",\n      \"∫\": \"&int;\",\n      \"∴\": \"&there4;\",\n      \"∼\": \"&sim;\",\n      \"≅\": \"&cong;\",\n      \"≈\": \"&asymp;\",\n      \"≠\": \"&ne;\",\n      \"≡\": \"&equiv;\",\n      \"≤\": \"&le;\",\n      \"≥\": \"&ge;\",\n      \"⊂\": \"&sub;\",\n      \"⊃\": \"&sup;\",\n      \"⊄\": \"&nsub;\",\n      \"⊆\": \"&sube;\",\n      \"⊇\": \"&supe;\",\n      \"⊕\": \"&oplus;\",\n      \"⊗\": \"&otimes;\",\n      \"⊥\": \"&perp;\",\n      \"⋅\": \"&sdot;\",\n      \"⌈\": \"&lceil;\",\n      \"⌉\": \"&rceil;\",\n      \"⌊\": \"&lfloor;\",\n      \"⌋\": \"&rfloor;\",\n      \"〈\": \"&lang;\",\n      \"〉\": \"&rang;\",\n      \"◊\": \"&loz;\",\n      \"♠\": \"&spades;\",\n      \"♣\": \"&clubs;\",\n      \"♥\": \"&hearts;\",\n      \"♦\": \"&diams;\"\n    }\n  },\n  html5: {\n    entities: {\n      \"&AElig\": \"Æ\",\n      \"&AElig;\": \"Æ\",\n      \"&AMP\": \"&\",\n      \"&AMP;\": \"&\",\n      \"&Aacute\": \"Á\",\n      \"&Aacute;\": \"Á\",\n      \"&Abreve;\": \"Ă\",\n      \"&Acirc\": \"Â\",\n      \"&Acirc;\": \"Â\",\n      \"&Acy;\": \"А\",\n      \"&Afr;\": \"𝔄\",\n      \"&Agrave\": \"À\",\n      \"&Agrave;\": \"À\",\n      \"&Alpha;\": \"Α\",\n      \"&Amacr;\": \"Ā\",\n      \"&And;\": \"⩓\",\n      \"&Aogon;\": \"Ą\",\n      \"&Aopf;\": \"𝔸\",\n      \"&ApplyFunction;\": \"⁡\",\n      \"&Aring\": \"Å\",\n      \"&Aring;\": \"Å\",\n      \"&Ascr;\": \"𝒜\",\n      \"&Assign;\": \"≔\",\n      \"&Atilde\": \"Ã\",\n      \"&Atilde;\": \"Ã\",\n      \"&Auml\": \"Ä\",\n      \"&Auml;\": \"Ä\",\n      \"&Backslash;\": \"∖\",\n      \"&Barv;\": \"⫧\",\n      \"&Barwed;\": \"⌆\",\n      \"&Bcy;\": \"Б\",\n      \"&Because;\": \"∵\",\n      \"&Bernoullis;\": \"ℬ\",\n      \"&Beta;\": \"Β\",\n      \"&Bfr;\": \"𝔅\",\n      \"&Bopf;\": \"𝔹\",\n      \"&Breve;\": \"˘\",\n      \"&Bscr;\": \"ℬ\",\n      \"&Bumpeq;\": \"≎\",\n      \"&CHcy;\": \"Ч\",\n      \"&COPY\": \"©\",\n      \"&COPY;\": \"©\",\n      \"&Cacute;\": \"Ć\",\n      \"&Cap;\": \"⋒\",\n      \"&CapitalDifferentialD;\": \"ⅅ\",\n      \"&Cayleys;\": \"ℭ\",\n      \"&Ccaron;\": \"Č\",\n      \"&Ccedil\": \"Ç\",\n      \"&Ccedil;\": \"Ç\",\n      \"&Ccirc;\": \"Ĉ\",\n      \"&Cconint;\": \"∰\",\n      \"&Cdot;\": \"Ċ\",\n      \"&Cedilla;\": \"¸\",\n      \"&CenterDot;\": \"·\",\n      \"&Cfr;\": \"ℭ\",\n      \"&Chi;\": \"Χ\",\n      \"&CircleDot;\": \"⊙\",\n      \"&CircleMinus;\": \"⊖\",\n      \"&CirclePlus;\": \"⊕\",\n      \"&CircleTimes;\": \"⊗\",\n      \"&ClockwiseContourIntegral;\": \"∲\",\n      \"&CloseCurlyDoubleQuote;\": \"”\",\n      \"&CloseCurlyQuote;\": \"’\",\n      \"&Colon;\": \"∷\",\n      \"&Colone;\": \"⩴\",\n      \"&Congruent;\": \"≡\",\n      \"&Conint;\": \"∯\",\n      \"&ContourIntegral;\": \"∮\",\n      \"&Copf;\": \"ℂ\",\n      \"&Coproduct;\": \"∐\",\n      \"&CounterClockwiseContourIntegral;\": \"∳\",\n      \"&Cross;\": \"⨯\",\n      \"&Cscr;\": \"𝒞\",\n      \"&Cup;\": \"⋓\",\n      \"&CupCap;\": \"≍\",\n      \"&DD;\": \"ⅅ\",\n      \"&DDotrahd;\": \"⤑\",\n      \"&DJcy;\": \"Ђ\",\n      \"&DScy;\": \"Ѕ\",\n      \"&DZcy;\": \"Џ\",\n      \"&Dagger;\": \"‡\",\n      \"&Darr;\": \"↡\",\n      \"&Dashv;\": \"⫤\",\n      \"&Dcaron;\": \"Ď\",\n      \"&Dcy;\": \"Д\",\n      \"&Del;\": \"∇\",\n      \"&Delta;\": \"Δ\",\n      \"&Dfr;\": \"𝔇\",\n      \"&DiacriticalAcute;\": \"´\",\n      \"&DiacriticalDot;\": \"˙\",\n      \"&DiacriticalDoubleAcute;\": \"˝\",\n      \"&DiacriticalGrave;\": \"`\",\n      \"&DiacriticalTilde;\": \"˜\",\n      \"&Diamond;\": \"⋄\",\n      \"&DifferentialD;\": \"ⅆ\",\n      \"&Dopf;\": \"𝔻\",\n      \"&Dot;\": \"¨\",\n      \"&DotDot;\": \"⃜\",\n      \"&DotEqual;\": \"≐\",\n      \"&DoubleContourIntegral;\": \"∯\",\n      \"&DoubleDot;\": \"¨\",\n      \"&DoubleDownArrow;\": \"⇓\",\n      \"&DoubleLeftArrow;\": \"⇐\",\n      \"&DoubleLeftRightArrow;\": \"⇔\",\n      \"&DoubleLeftTee;\": \"⫤\",\n      \"&DoubleLongLeftArrow;\": \"⟸\",\n      \"&DoubleLongLeftRightArrow;\": \"⟺\",\n      \"&DoubleLongRightArrow;\": \"⟹\",\n      \"&DoubleRightArrow;\": \"⇒\",\n      \"&DoubleRightTee;\": \"⊨\",\n      \"&DoubleUpArrow;\": \"⇑\",\n      \"&DoubleUpDownArrow;\": \"⇕\",\n      \"&DoubleVerticalBar;\": \"∥\",\n      \"&DownArrow;\": \"↓\",\n      \"&DownArrowBar;\": \"⤓\",\n      \"&DownArrowUpArrow;\": \"⇵\",\n      \"&DownBreve;\": \"̑\",\n      \"&DownLeftRightVector;\": \"⥐\",\n      \"&DownLeftTeeVector;\": \"⥞\",\n      \"&DownLeftVector;\": \"↽\",\n      \"&DownLeftVectorBar;\": \"⥖\",\n      \"&DownRightTeeVector;\": \"⥟\",\n      \"&DownRightVector;\": \"⇁\",\n      \"&DownRightVectorBar;\": \"⥗\",\n      \"&DownTee;\": \"⊤\",\n      \"&DownTeeArrow;\": \"↧\",\n      \"&Downarrow;\": \"⇓\",\n      \"&Dscr;\": \"𝒟\",\n      \"&Dstrok;\": \"Đ\",\n      \"&ENG;\": \"Ŋ\",\n      \"&ETH\": \"Ð\",\n      \"&ETH;\": \"Ð\",\n      \"&Eacute\": \"É\",\n      \"&Eacute;\": \"É\",\n      \"&Ecaron;\": \"Ě\",\n      \"&Ecirc\": \"Ê\",\n      \"&Ecirc;\": \"Ê\",\n      \"&Ecy;\": \"Э\",\n      \"&Edot;\": \"Ė\",\n      \"&Efr;\": \"𝔈\",\n      \"&Egrave\": \"È\",\n      \"&Egrave;\": \"È\",\n      \"&Element;\": \"∈\",\n      \"&Emacr;\": \"Ē\",\n      \"&EmptySmallSquare;\": \"◻\",\n      \"&EmptyVerySmallSquare;\": \"▫\",\n      \"&Eogon;\": \"Ę\",\n      \"&Eopf;\": \"𝔼\",\n      \"&Epsilon;\": \"Ε\",\n      \"&Equal;\": \"⩵\",\n      \"&EqualTilde;\": \"≂\",\n      \"&Equilibrium;\": \"⇌\",\n      \"&Escr;\": \"ℰ\",\n      \"&Esim;\": \"⩳\",\n      \"&Eta;\": \"Η\",\n      \"&Euml\": \"Ë\",\n      \"&Euml;\": \"Ë\",\n      \"&Exists;\": \"∃\",\n      \"&ExponentialE;\": \"ⅇ\",\n      \"&Fcy;\": \"Ф\",\n      \"&Ffr;\": \"𝔉\",\n      \"&FilledSmallSquare;\": \"◼\",\n      \"&FilledVerySmallSquare;\": \"▪\",\n      \"&Fopf;\": \"𝔽\",\n      \"&ForAll;\": \"∀\",\n      \"&Fouriertrf;\": \"ℱ\",\n      \"&Fscr;\": \"ℱ\",\n      \"&GJcy;\": \"Ѓ\",\n      \"&GT\": \">\",\n      \"&GT;\": \">\",\n      \"&Gamma;\": \"Γ\",\n      \"&Gammad;\": \"Ϝ\",\n      \"&Gbreve;\": \"Ğ\",\n      \"&Gcedil;\": \"Ģ\",\n      \"&Gcirc;\": \"Ĝ\",\n      \"&Gcy;\": \"Г\",\n      \"&Gdot;\": \"Ġ\",\n      \"&Gfr;\": \"𝔊\",\n      \"&Gg;\": \"⋙\",\n      \"&Gopf;\": \"𝔾\",\n      \"&GreaterEqual;\": \"≥\",\n      \"&GreaterEqualLess;\": \"⋛\",\n      \"&GreaterFullEqual;\": \"≧\",\n      \"&GreaterGreater;\": \"⪢\",\n      \"&GreaterLess;\": \"≷\",\n      \"&GreaterSlantEqual;\": \"⩾\",\n      \"&GreaterTilde;\": \"≳\",\n      \"&Gscr;\": \"𝒢\",\n      \"&Gt;\": \"≫\",\n      \"&HARDcy;\": \"Ъ\",\n      \"&Hacek;\": \"ˇ\",\n      \"&Hat;\": \"^\",\n      \"&Hcirc;\": \"Ĥ\",\n      \"&Hfr;\": \"ℌ\",\n      \"&HilbertSpace;\": \"ℋ\",\n      \"&Hopf;\": \"ℍ\",\n      \"&HorizontalLine;\": \"─\",\n      \"&Hscr;\": \"ℋ\",\n      \"&Hstrok;\": \"Ħ\",\n      \"&HumpDownHump;\": \"≎\",\n      \"&HumpEqual;\": \"≏\",\n      \"&IEcy;\": \"Е\",\n      \"&IJlig;\": \"IJ\",\n      \"&IOcy;\": \"Ё\",\n      \"&Iacute\": \"Í\",\n      \"&Iacute;\": \"Í\",\n      \"&Icirc\": \"Î\",\n      \"&Icirc;\": \"Î\",\n      \"&Icy;\": \"И\",\n      \"&Idot;\": \"İ\",\n      \"&Ifr;\": \"ℑ\",\n      \"&Igrave\": \"Ì\",\n      \"&Igrave;\": \"Ì\",\n      \"&Im;\": \"ℑ\",\n      \"&Imacr;\": \"Ī\",\n      \"&ImaginaryI;\": \"ⅈ\",\n      \"&Implies;\": \"⇒\",\n      \"&Int;\": \"∬\",\n      \"&Integral;\": \"∫\",\n      \"&Intersection;\": \"⋂\",\n      \"&InvisibleComma;\": \"⁣\",\n      \"&InvisibleTimes;\": \"⁢\",\n      \"&Iogon;\": \"Į\",\n      \"&Iopf;\": \"𝕀\",\n      \"&Iota;\": \"Ι\",\n      \"&Iscr;\": \"ℐ\",\n      \"&Itilde;\": \"Ĩ\",\n      \"&Iukcy;\": \"І\",\n      \"&Iuml\": \"Ï\",\n      \"&Iuml;\": \"Ï\",\n      \"&Jcirc;\": \"Ĵ\",\n      \"&Jcy;\": \"Й\",\n      \"&Jfr;\": \"𝔍\",\n      \"&Jopf;\": \"𝕁\",\n      \"&Jscr;\": \"𝒥\",\n      \"&Jsercy;\": \"Ј\",\n      \"&Jukcy;\": \"Є\",\n      \"&KHcy;\": \"Х\",\n      \"&KJcy;\": \"Ќ\",\n      \"&Kappa;\": \"Κ\",\n      \"&Kcedil;\": \"Ķ\",\n      \"&Kcy;\": \"К\",\n      \"&Kfr;\": \"𝔎\",\n      \"&Kopf;\": \"𝕂\",\n      \"&Kscr;\": \"𝒦\",\n      \"&LJcy;\": \"Љ\",\n      \"&LT\": \"<\",\n      \"&LT;\": \"<\",\n      \"&Lacute;\": \"Ĺ\",\n      \"&Lambda;\": \"Λ\",\n      \"&Lang;\": \"⟪\",\n      \"&Laplacetrf;\": \"ℒ\",\n      \"&Larr;\": \"↞\",\n      \"&Lcaron;\": \"Ľ\",\n      \"&Lcedil;\": \"Ļ\",\n      \"&Lcy;\": \"Л\",\n      \"&LeftAngleBracket;\": \"⟨\",\n      \"&LeftArrow;\": \"←\",\n      \"&LeftArrowBar;\": \"⇤\",\n      \"&LeftArrowRightArrow;\": \"⇆\",\n      \"&LeftCeiling;\": \"⌈\",\n      \"&LeftDoubleBracket;\": \"⟦\",\n      \"&LeftDownTeeVector;\": \"⥡\",\n      \"&LeftDownVector;\": \"⇃\",\n      \"&LeftDownVectorBar;\": \"⥙\",\n      \"&LeftFloor;\": \"⌊\",\n      \"&LeftRightArrow;\": \"↔\",\n      \"&LeftRightVector;\": \"⥎\",\n      \"&LeftTee;\": \"⊣\",\n      \"&LeftTeeArrow;\": \"↤\",\n      \"&LeftTeeVector;\": \"⥚\",\n      \"&LeftTriangle;\": \"⊲\",\n      \"&LeftTriangleBar;\": \"⧏\",\n      \"&LeftTriangleEqual;\": \"⊴\",\n      \"&LeftUpDownVector;\": \"⥑\",\n      \"&LeftUpTeeVector;\": \"⥠\",\n      \"&LeftUpVector;\": \"↿\",\n      \"&LeftUpVectorBar;\": \"⥘\",\n      \"&LeftVector;\": \"↼\",\n      \"&LeftVectorBar;\": \"⥒\",\n      \"&Leftarrow;\": \"⇐\",\n      \"&Leftrightarrow;\": \"⇔\",\n      \"&LessEqualGreater;\": \"⋚\",\n      \"&LessFullEqual;\": \"≦\",\n      \"&LessGreater;\": \"≶\",\n      \"&LessLess;\": \"⪡\",\n      \"&LessSlantEqual;\": \"⩽\",\n      \"&LessTilde;\": \"≲\",\n      \"&Lfr;\": \"𝔏\",\n      \"&Ll;\": \"⋘\",\n      \"&Lleftarrow;\": \"⇚\",\n      \"&Lmidot;\": \"Ŀ\",\n      \"&LongLeftArrow;\": \"⟵\",\n      \"&LongLeftRightArrow;\": \"⟷\",\n      \"&LongRightArrow;\": \"⟶\",\n      \"&Longleftarrow;\": \"⟸\",\n      \"&Longleftrightarrow;\": \"⟺\",\n      \"&Longrightarrow;\": \"⟹\",\n      \"&Lopf;\": \"𝕃\",\n      \"&LowerLeftArrow;\": \"↙\",\n      \"&LowerRightArrow;\": \"↘\",\n      \"&Lscr;\": \"ℒ\",\n      \"&Lsh;\": \"↰\",\n      \"&Lstrok;\": \"Ł\",\n      \"&Lt;\": \"≪\",\n      \"&Map;\": \"⤅\",\n      \"&Mcy;\": \"М\",\n      \"&MediumSpace;\": \" \",\n      \"&Mellintrf;\": \"ℳ\",\n      \"&Mfr;\": \"𝔐\",\n      \"&MinusPlus;\": \"∓\",\n      \"&Mopf;\": \"𝕄\",\n      \"&Mscr;\": \"ℳ\",\n      \"&Mu;\": \"Μ\",\n      \"&NJcy;\": \"Њ\",\n      \"&Nacute;\": \"Ń\",\n      \"&Ncaron;\": \"Ň\",\n      \"&Ncedil;\": \"Ņ\",\n      \"&Ncy;\": \"Н\",\n      \"&NegativeMediumSpace;\": \"​\",\n      \"&NegativeThickSpace;\": \"​\",\n      \"&NegativeThinSpace;\": \"​\",\n      \"&NegativeVeryThinSpace;\": \"​\",\n      \"&NestedGreaterGreater;\": \"≫\",\n      \"&NestedLessLess;\": \"≪\",\n      \"&NewLine;\": \"\\n\",\n      \"&Nfr;\": \"𝔑\",\n      \"&NoBreak;\": \"⁠\",\n      \"&NonBreakingSpace;\": \" \",\n      \"&Nopf;\": \"ℕ\",\n      \"&Not;\": \"⫬\",\n      \"&NotCongruent;\": \"≢\",\n      \"&NotCupCap;\": \"≭\",\n      \"&NotDoubleVerticalBar;\": \"∦\",\n      \"&NotElement;\": \"∉\",\n      \"&NotEqual;\": \"≠\",\n      \"&NotEqualTilde;\": \"≂̸\",\n      \"&NotExists;\": \"∄\",\n      \"&NotGreater;\": \"≯\",\n      \"&NotGreaterEqual;\": \"≱\",\n      \"&NotGreaterFullEqual;\": \"≧̸\",\n      \"&NotGreaterGreater;\": \"≫̸\",\n      \"&NotGreaterLess;\": \"≹\",\n      \"&NotGreaterSlantEqual;\": \"⩾̸\",\n      \"&NotGreaterTilde;\": \"≵\",\n      \"&NotHumpDownHump;\": \"≎̸\",\n      \"&NotHumpEqual;\": \"≏̸\",\n      \"&NotLeftTriangle;\": \"⋪\",\n      \"&NotLeftTriangleBar;\": \"⧏̸\",\n      \"&NotLeftTriangleEqual;\": \"⋬\",\n      \"&NotLess;\": \"≮\",\n      \"&NotLessEqual;\": \"≰\",\n      \"&NotLessGreater;\": \"≸\",\n      \"&NotLessLess;\": \"≪̸\",\n      \"&NotLessSlantEqual;\": \"⩽̸\",\n      \"&NotLessTilde;\": \"≴\",\n      \"&NotNestedGreaterGreater;\": \"⪢̸\",\n      \"&NotNestedLessLess;\": \"⪡̸\",\n      \"&NotPrecedes;\": \"⊀\",\n      \"&NotPrecedesEqual;\": \"⪯̸\",\n      \"&NotPrecedesSlantEqual;\": \"⋠\",\n      \"&NotReverseElement;\": \"∌\",\n      \"&NotRightTriangle;\": \"⋫\",\n      \"&NotRightTriangleBar;\": \"⧐̸\",\n      \"&NotRightTriangleEqual;\": \"⋭\",\n      \"&NotSquareSubset;\": \"⊏̸\",\n      \"&NotSquareSubsetEqual;\": \"⋢\",\n      \"&NotSquareSuperset;\": \"⊐̸\",\n      \"&NotSquareSupersetEqual;\": \"⋣\",\n      \"&NotSubset;\": \"⊂⃒\",\n      \"&NotSubsetEqual;\": \"⊈\",\n      \"&NotSucceeds;\": \"⊁\",\n      \"&NotSucceedsEqual;\": \"⪰̸\",\n      \"&NotSucceedsSlantEqual;\": \"⋡\",\n      \"&NotSucceedsTilde;\": \"≿̸\",\n      \"&NotSuperset;\": \"⊃⃒\",\n      \"&NotSupersetEqual;\": \"⊉\",\n      \"&NotTilde;\": \"≁\",\n      \"&NotTildeEqual;\": \"≄\",\n      \"&NotTildeFullEqual;\": \"≇\",\n      \"&NotTildeTilde;\": \"≉\",\n      \"&NotVerticalBar;\": \"∤\",\n      \"&Nscr;\": \"𝒩\",\n      \"&Ntilde\": \"Ñ\",\n      \"&Ntilde;\": \"Ñ\",\n      \"&Nu;\": \"Ν\",\n      \"&OElig;\": \"Œ\",\n      \"&Oacute\": \"Ó\",\n      \"&Oacute;\": \"Ó\",\n      \"&Ocirc\": \"Ô\",\n      \"&Ocirc;\": \"Ô\",\n      \"&Ocy;\": \"О\",\n      \"&Odblac;\": \"Ő\",\n      \"&Ofr;\": \"𝔒\",\n      \"&Ograve\": \"Ò\",\n      \"&Ograve;\": \"Ò\",\n      \"&Omacr;\": \"Ō\",\n      \"&Omega;\": \"Ω\",\n      \"&Omicron;\": \"Ο\",\n      \"&Oopf;\": \"𝕆\",\n      \"&OpenCurlyDoubleQuote;\": \"“\",\n      \"&OpenCurlyQuote;\": \"‘\",\n      \"&Or;\": \"⩔\",\n      \"&Oscr;\": \"𝒪\",\n      \"&Oslash\": \"Ø\",\n      \"&Oslash;\": \"Ø\",\n      \"&Otilde\": \"Õ\",\n      \"&Otilde;\": \"Õ\",\n      \"&Otimes;\": \"⨷\",\n      \"&Ouml\": \"Ö\",\n      \"&Ouml;\": \"Ö\",\n      \"&OverBar;\": \"‾\",\n      \"&OverBrace;\": \"⏞\",\n      \"&OverBracket;\": \"⎴\",\n      \"&OverParenthesis;\": \"⏜\",\n      \"&PartialD;\": \"∂\",\n      \"&Pcy;\": \"П\",\n      \"&Pfr;\": \"𝔓\",\n      \"&Phi;\": \"Φ\",\n      \"&Pi;\": \"Π\",\n      \"&PlusMinus;\": \"±\",\n      \"&Poincareplane;\": \"ℌ\",\n      \"&Popf;\": \"ℙ\",\n      \"&Pr;\": \"⪻\",\n      \"&Precedes;\": \"≺\",\n      \"&PrecedesEqual;\": \"⪯\",\n      \"&PrecedesSlantEqual;\": \"≼\",\n      \"&PrecedesTilde;\": \"≾\",\n      \"&Prime;\": \"″\",\n      \"&Product;\": \"∏\",\n      \"&Proportion;\": \"∷\",\n      \"&Proportional;\": \"∝\",\n      \"&Pscr;\": \"𝒫\",\n      \"&Psi;\": \"Ψ\",\n      \"&QUOT\": '\"',\n      \"&QUOT;\": '\"',\n      \"&Qfr;\": \"𝔔\",\n      \"&Qopf;\": \"ℚ\",\n      \"&Qscr;\": \"𝒬\",\n      \"&RBarr;\": \"⤐\",\n      \"&REG\": \"®\",\n      \"&REG;\": \"®\",\n      \"&Racute;\": \"Ŕ\",\n      \"&Rang;\": \"⟫\",\n      \"&Rarr;\": \"↠\",\n      \"&Rarrtl;\": \"⤖\",\n      \"&Rcaron;\": \"Ř\",\n      \"&Rcedil;\": \"Ŗ\",\n      \"&Rcy;\": \"Р\",\n      \"&Re;\": \"ℜ\",\n      \"&ReverseElement;\": \"∋\",\n      \"&ReverseEquilibrium;\": \"⇋\",\n      \"&ReverseUpEquilibrium;\": \"⥯\",\n      \"&Rfr;\": \"ℜ\",\n      \"&Rho;\": \"Ρ\",\n      \"&RightAngleBracket;\": \"⟩\",\n      \"&RightArrow;\": \"→\",\n      \"&RightArrowBar;\": \"⇥\",\n      \"&RightArrowLeftArrow;\": \"⇄\",\n      \"&RightCeiling;\": \"⌉\",\n      \"&RightDoubleBracket;\": \"⟧\",\n      \"&RightDownTeeVector;\": \"⥝\",\n      \"&RightDownVector;\": \"⇂\",\n      \"&RightDownVectorBar;\": \"⥕\",\n      \"&RightFloor;\": \"⌋\",\n      \"&RightTee;\": \"⊢\",\n      \"&RightTeeArrow;\": \"↦\",\n      \"&RightTeeVector;\": \"⥛\",\n      \"&RightTriangle;\": \"⊳\",\n      \"&RightTriangleBar;\": \"⧐\",\n      \"&RightTriangleEqual;\": \"⊵\",\n      \"&RightUpDownVector;\": \"⥏\",\n      \"&RightUpTeeVector;\": \"⥜\",\n      \"&RightUpVector;\": \"↾\",\n      \"&RightUpVectorBar;\": \"⥔\",\n      \"&RightVector;\": \"⇀\",\n      \"&RightVectorBar;\": \"⥓\",\n      \"&Rightarrow;\": \"⇒\",\n      \"&Ropf;\": \"ℝ\",\n      \"&RoundImplies;\": \"⥰\",\n      \"&Rrightarrow;\": \"⇛\",\n      \"&Rscr;\": \"ℛ\",\n      \"&Rsh;\": \"↱\",\n      \"&RuleDelayed;\": \"⧴\",\n      \"&SHCHcy;\": \"Щ\",\n      \"&SHcy;\": \"Ш\",\n      \"&SOFTcy;\": \"Ь\",\n      \"&Sacute;\": \"Ś\",\n      \"&Sc;\": \"⪼\",\n      \"&Scaron;\": \"Š\",\n      \"&Scedil;\": \"Ş\",\n      \"&Scirc;\": \"Ŝ\",\n      \"&Scy;\": \"С\",\n      \"&Sfr;\": \"𝔖\",\n      \"&ShortDownArrow;\": \"↓\",\n      \"&ShortLeftArrow;\": \"←\",\n      \"&ShortRightArrow;\": \"→\",\n      \"&ShortUpArrow;\": \"↑\",\n      \"&Sigma;\": \"Σ\",\n      \"&SmallCircle;\": \"∘\",\n      \"&Sopf;\": \"𝕊\",\n      \"&Sqrt;\": \"√\",\n      \"&Square;\": \"□\",\n      \"&SquareIntersection;\": \"⊓\",\n      \"&SquareSubset;\": \"⊏\",\n      \"&SquareSubsetEqual;\": \"⊑\",\n      \"&SquareSuperset;\": \"⊐\",\n      \"&SquareSupersetEqual;\": \"⊒\",\n      \"&SquareUnion;\": \"⊔\",\n      \"&Sscr;\": \"𝒮\",\n      \"&Star;\": \"⋆\",\n      \"&Sub;\": \"⋐\",\n      \"&Subset;\": \"⋐\",\n      \"&SubsetEqual;\": \"⊆\",\n      \"&Succeeds;\": \"≻\",\n      \"&SucceedsEqual;\": \"⪰\",\n      \"&SucceedsSlantEqual;\": \"≽\",\n      \"&SucceedsTilde;\": \"≿\",\n      \"&SuchThat;\": \"∋\",\n      \"&Sum;\": \"∑\",\n      \"&Sup;\": \"⋑\",\n      \"&Superset;\": \"⊃\",\n      \"&SupersetEqual;\": \"⊇\",\n      \"&Supset;\": \"⋑\",\n      \"&THORN\": \"Þ\",\n      \"&THORN;\": \"Þ\",\n      \"&TRADE;\": \"™\",\n      \"&TSHcy;\": \"Ћ\",\n      \"&TScy;\": \"Ц\",\n      \"&Tab;\": \"\\t\",\n      \"&Tau;\": \"Τ\",\n      \"&Tcaron;\": \"Ť\",\n      \"&Tcedil;\": \"Ţ\",\n      \"&Tcy;\": \"Т\",\n      \"&Tfr;\": \"𝔗\",\n      \"&Therefore;\": \"∴\",\n      \"&Theta;\": \"Θ\",\n      \"&ThickSpace;\": \"  \",\n      \"&ThinSpace;\": \" \",\n      \"&Tilde;\": \"∼\",\n      \"&TildeEqual;\": \"≃\",\n      \"&TildeFullEqual;\": \"≅\",\n      \"&TildeTilde;\": \"≈\",\n      \"&Topf;\": \"𝕋\",\n      \"&TripleDot;\": \"⃛\",\n      \"&Tscr;\": \"𝒯\",\n      \"&Tstrok;\": \"Ŧ\",\n      \"&Uacute\": \"Ú\",\n      \"&Uacute;\": \"Ú\",\n      \"&Uarr;\": \"↟\",\n      \"&Uarrocir;\": \"⥉\",\n      \"&Ubrcy;\": \"Ў\",\n      \"&Ubreve;\": \"Ŭ\",\n      \"&Ucirc\": \"Û\",\n      \"&Ucirc;\": \"Û\",\n      \"&Ucy;\": \"У\",\n      \"&Udblac;\": \"Ű\",\n      \"&Ufr;\": \"𝔘\",\n      \"&Ugrave\": \"Ù\",\n      \"&Ugrave;\": \"Ù\",\n      \"&Umacr;\": \"Ū\",\n      \"&UnderBar;\": \"_\",\n      \"&UnderBrace;\": \"⏟\",\n      \"&UnderBracket;\": \"⎵\",\n      \"&UnderParenthesis;\": \"⏝\",\n      \"&Union;\": \"⋃\",\n      \"&UnionPlus;\": \"⊎\",\n      \"&Uogon;\": \"Ų\",\n      \"&Uopf;\": \"𝕌\",\n      \"&UpArrow;\": \"↑\",\n      \"&UpArrowBar;\": \"⤒\",\n      \"&UpArrowDownArrow;\": \"⇅\",\n      \"&UpDownArrow;\": \"↕\",\n      \"&UpEquilibrium;\": \"⥮\",\n      \"&UpTee;\": \"⊥\",\n      \"&UpTeeArrow;\": \"↥\",\n      \"&Uparrow;\": \"⇑\",\n      \"&Updownarrow;\": \"⇕\",\n      \"&UpperLeftArrow;\": \"↖\",\n      \"&UpperRightArrow;\": \"↗\",\n      \"&Upsi;\": \"ϒ\",\n      \"&Upsilon;\": \"Υ\",\n      \"&Uring;\": \"Ů\",\n      \"&Uscr;\": \"𝒰\",\n      \"&Utilde;\": \"Ũ\",\n      \"&Uuml\": \"Ü\",\n      \"&Uuml;\": \"Ü\",\n      \"&VDash;\": \"⊫\",\n      \"&Vbar;\": \"⫫\",\n      \"&Vcy;\": \"В\",\n      \"&Vdash;\": \"⊩\",\n      \"&Vdashl;\": \"⫦\",\n      \"&Vee;\": \"⋁\",\n      \"&Verbar;\": \"‖\",\n      \"&Vert;\": \"‖\",\n      \"&VerticalBar;\": \"∣\",\n      \"&VerticalLine;\": \"|\",\n      \"&VerticalSeparator;\": \"❘\",\n      \"&VerticalTilde;\": \"≀\",\n      \"&VeryThinSpace;\": \" \",\n      \"&Vfr;\": \"𝔙\",\n      \"&Vopf;\": \"𝕍\",\n      \"&Vscr;\": \"𝒱\",\n      \"&Vvdash;\": \"⊪\",\n      \"&Wcirc;\": \"Ŵ\",\n      \"&Wedge;\": \"⋀\",\n      \"&Wfr;\": \"𝔚\",\n      \"&Wopf;\": \"𝕎\",\n      \"&Wscr;\": \"𝒲\",\n      \"&Xfr;\": \"𝔛\",\n      \"&Xi;\": \"Ξ\",\n      \"&Xopf;\": \"𝕏\",\n      \"&Xscr;\": \"𝒳\",\n      \"&YAcy;\": \"Я\",\n      \"&YIcy;\": \"Ї\",\n      \"&YUcy;\": \"Ю\",\n      \"&Yacute\": \"Ý\",\n      \"&Yacute;\": \"Ý\",\n      \"&Ycirc;\": \"Ŷ\",\n      \"&Ycy;\": \"Ы\",\n      \"&Yfr;\": \"𝔜\",\n      \"&Yopf;\": \"𝕐\",\n      \"&Yscr;\": \"𝒴\",\n      \"&Yuml;\": \"Ÿ\",\n      \"&ZHcy;\": \"Ж\",\n      \"&Zacute;\": \"Ź\",\n      \"&Zcaron;\": \"Ž\",\n      \"&Zcy;\": \"З\",\n      \"&Zdot;\": \"Ż\",\n      \"&ZeroWidthSpace;\": \"​\",\n      \"&Zeta;\": \"Ζ\",\n      \"&Zfr;\": \"ℨ\",\n      \"&Zopf;\": \"ℤ\",\n      \"&Zscr;\": \"𝒵\",\n      \"&aacute\": \"á\",\n      \"&aacute;\": \"á\",\n      \"&abreve;\": \"ă\",\n      \"&ac;\": \"∾\",\n      \"&acE;\": \"∾̳\",\n      \"&acd;\": \"∿\",\n      \"&acirc\": \"â\",\n      \"&acirc;\": \"â\",\n      \"&acute\": \"´\",\n      \"&acute;\": \"´\",\n      \"&acy;\": \"а\",\n      \"&aelig\": \"æ\",\n      \"&aelig;\": \"æ\",\n      \"&af;\": \"⁡\",\n      \"&afr;\": \"𝔞\",\n      \"&agrave\": \"à\",\n      \"&agrave;\": \"à\",\n      \"&alefsym;\": \"ℵ\",\n      \"&aleph;\": \"ℵ\",\n      \"&alpha;\": \"α\",\n      \"&amacr;\": \"ā\",\n      \"&amalg;\": \"⨿\",\n      \"&amp\": \"&\",\n      \"&amp;\": \"&\",\n      \"&and;\": \"∧\",\n      \"&andand;\": \"⩕\",\n      \"&andd;\": \"⩜\",\n      \"&andslope;\": \"⩘\",\n      \"&andv;\": \"⩚\",\n      \"&ang;\": \"∠\",\n      \"&ange;\": \"⦤\",\n      \"&angle;\": \"∠\",\n      \"&angmsd;\": \"∡\",\n      \"&angmsdaa;\": \"⦨\",\n      \"&angmsdab;\": \"⦩\",\n      \"&angmsdac;\": \"⦪\",\n      \"&angmsdad;\": \"⦫\",\n      \"&angmsdae;\": \"⦬\",\n      \"&angmsdaf;\": \"⦭\",\n      \"&angmsdag;\": \"⦮\",\n      \"&angmsdah;\": \"⦯\",\n      \"&angrt;\": \"∟\",\n      \"&angrtvb;\": \"⊾\",\n      \"&angrtvbd;\": \"⦝\",\n      \"&angsph;\": \"∢\",\n      \"&angst;\": \"Å\",\n      \"&angzarr;\": \"⍼\",\n      \"&aogon;\": \"ą\",\n      \"&aopf;\": \"𝕒\",\n      \"&ap;\": \"≈\",\n      \"&apE;\": \"⩰\",\n      \"&apacir;\": \"⩯\",\n      \"&ape;\": \"≊\",\n      \"&apid;\": \"≋\",\n      \"&apos;\": \"'\",\n      \"&approx;\": \"≈\",\n      \"&approxeq;\": \"≊\",\n      \"&aring\": \"å\",\n      \"&aring;\": \"å\",\n      \"&ascr;\": \"𝒶\",\n      \"&ast;\": \"*\",\n      \"&asymp;\": \"≈\",\n      \"&asympeq;\": \"≍\",\n      \"&atilde\": \"ã\",\n      \"&atilde;\": \"ã\",\n      \"&auml\": \"ä\",\n      \"&auml;\": \"ä\",\n      \"&awconint;\": \"∳\",\n      \"&awint;\": \"⨑\",\n      \"&bNot;\": \"⫭\",\n      \"&backcong;\": \"≌\",\n      \"&backepsilon;\": \"϶\",\n      \"&backprime;\": \"‵\",\n      \"&backsim;\": \"∽\",\n      \"&backsimeq;\": \"⋍\",\n      \"&barvee;\": \"⊽\",\n      \"&barwed;\": \"⌅\",\n      \"&barwedge;\": \"⌅\",\n      \"&bbrk;\": \"⎵\",\n      \"&bbrktbrk;\": \"⎶\",\n      \"&bcong;\": \"≌\",\n      \"&bcy;\": \"б\",\n      \"&bdquo;\": \"„\",\n      \"&becaus;\": \"∵\",\n      \"&because;\": \"∵\",\n      \"&bemptyv;\": \"⦰\",\n      \"&bepsi;\": \"϶\",\n      \"&bernou;\": \"ℬ\",\n      \"&beta;\": \"β\",\n      \"&beth;\": \"ℶ\",\n      \"&between;\": \"≬\",\n      \"&bfr;\": \"𝔟\",\n      \"&bigcap;\": \"⋂\",\n      \"&bigcirc;\": \"◯\",\n      \"&bigcup;\": \"⋃\",\n      \"&bigodot;\": \"⨀\",\n      \"&bigoplus;\": \"⨁\",\n      \"&bigotimes;\": \"⨂\",\n      \"&bigsqcup;\": \"⨆\",\n      \"&bigstar;\": \"★\",\n      \"&bigtriangledown;\": \"▽\",\n      \"&bigtriangleup;\": \"△\",\n      \"&biguplus;\": \"⨄\",\n      \"&bigvee;\": \"⋁\",\n      \"&bigwedge;\": \"⋀\",\n      \"&bkarow;\": \"⤍\",\n      \"&blacklozenge;\": \"⧫\",\n      \"&blacksquare;\": \"▪\",\n      \"&blacktriangle;\": \"▴\",\n      \"&blacktriangledown;\": \"▾\",\n      \"&blacktriangleleft;\": \"◂\",\n      \"&blacktriangleright;\": \"▸\",\n      \"&blank;\": \"␣\",\n      \"&blk12;\": \"▒\",\n      \"&blk14;\": \"░\",\n      \"&blk34;\": \"▓\",\n      \"&block;\": \"█\",\n      \"&bne;\": \"=⃥\",\n      \"&bnequiv;\": \"≡⃥\",\n      \"&bnot;\": \"⌐\",\n      \"&bopf;\": \"𝕓\",\n      \"&bot;\": \"⊥\",\n      \"&bottom;\": \"⊥\",\n      \"&bowtie;\": \"⋈\",\n      \"&boxDL;\": \"╗\",\n      \"&boxDR;\": \"╔\",\n      \"&boxDl;\": \"╖\",\n      \"&boxDr;\": \"╓\",\n      \"&boxH;\": \"═\",\n      \"&boxHD;\": \"╦\",\n      \"&boxHU;\": \"╩\",\n      \"&boxHd;\": \"╤\",\n      \"&boxHu;\": \"╧\",\n      \"&boxUL;\": \"╝\",\n      \"&boxUR;\": \"╚\",\n      \"&boxUl;\": \"╜\",\n      \"&boxUr;\": \"╙\",\n      \"&boxV;\": \"║\",\n      \"&boxVH;\": \"╬\",\n      \"&boxVL;\": \"╣\",\n      \"&boxVR;\": \"╠\",\n      \"&boxVh;\": \"╫\",\n      \"&boxVl;\": \"╢\",\n      \"&boxVr;\": \"╟\",\n      \"&boxbox;\": \"⧉\",\n      \"&boxdL;\": \"╕\",\n      \"&boxdR;\": \"╒\",\n      \"&boxdl;\": \"┐\",\n      \"&boxdr;\": \"┌\",\n      \"&boxh;\": \"─\",\n      \"&boxhD;\": \"╥\",\n      \"&boxhU;\": \"╨\",\n      \"&boxhd;\": \"┬\",\n      \"&boxhu;\": \"┴\",\n      \"&boxminus;\": \"⊟\",\n      \"&boxplus;\": \"⊞\",\n      \"&boxtimes;\": \"⊠\",\n      \"&boxuL;\": \"╛\",\n      \"&boxuR;\": \"╘\",\n      \"&boxul;\": \"┘\",\n      \"&boxur;\": \"└\",\n      \"&boxv;\": \"│\",\n      \"&boxvH;\": \"╪\",\n      \"&boxvL;\": \"╡\",\n      \"&boxvR;\": \"╞\",\n      \"&boxvh;\": \"┼\",\n      \"&boxvl;\": \"┤\",\n      \"&boxvr;\": \"├\",\n      \"&bprime;\": \"‵\",\n      \"&breve;\": \"˘\",\n      \"&brvbar\": \"¦\",\n      \"&brvbar;\": \"¦\",\n      \"&bscr;\": \"𝒷\",\n      \"&bsemi;\": \"⁏\",\n      \"&bsim;\": \"∽\",\n      \"&bsime;\": \"⋍\",\n      \"&bsol;\": \"\\\\\",\n      \"&bsolb;\": \"⧅\",\n      \"&bsolhsub;\": \"⟈\",\n      \"&bull;\": \"•\",\n      \"&bullet;\": \"•\",\n      \"&bump;\": \"≎\",\n      \"&bumpE;\": \"⪮\",\n      \"&bumpe;\": \"≏\",\n      \"&bumpeq;\": \"≏\",\n      \"&cacute;\": \"ć\",\n      \"&cap;\": \"∩\",\n      \"&capand;\": \"⩄\",\n      \"&capbrcup;\": \"⩉\",\n      \"&capcap;\": \"⩋\",\n      \"&capcup;\": \"⩇\",\n      \"&capdot;\": \"⩀\",\n      \"&caps;\": \"∩︀\",\n      \"&caret;\": \"⁁\",\n      \"&caron;\": \"ˇ\",\n      \"&ccaps;\": \"⩍\",\n      \"&ccaron;\": \"č\",\n      \"&ccedil\": \"ç\",\n      \"&ccedil;\": \"ç\",\n      \"&ccirc;\": \"ĉ\",\n      \"&ccups;\": \"⩌\",\n      \"&ccupssm;\": \"⩐\",\n      \"&cdot;\": \"ċ\",\n      \"&cedil\": \"¸\",\n      \"&cedil;\": \"¸\",\n      \"&cemptyv;\": \"⦲\",\n      \"&cent\": \"¢\",\n      \"&cent;\": \"¢\",\n      \"&centerdot;\": \"·\",\n      \"&cfr;\": \"𝔠\",\n      \"&chcy;\": \"ч\",\n      \"&check;\": \"✓\",\n      \"&checkmark;\": \"✓\",\n      \"&chi;\": \"χ\",\n      \"&cir;\": \"○\",\n      \"&cirE;\": \"⧃\",\n      \"&circ;\": \"ˆ\",\n      \"&circeq;\": \"≗\",\n      \"&circlearrowleft;\": \"↺\",\n      \"&circlearrowright;\": \"↻\",\n      \"&circledR;\": \"®\",\n      \"&circledS;\": \"Ⓢ\",\n      \"&circledast;\": \"⊛\",\n      \"&circledcirc;\": \"⊚\",\n      \"&circleddash;\": \"⊝\",\n      \"&cire;\": \"≗\",\n      \"&cirfnint;\": \"⨐\",\n      \"&cirmid;\": \"⫯\",\n      \"&cirscir;\": \"⧂\",\n      \"&clubs;\": \"♣\",\n      \"&clubsuit;\": \"♣\",\n      \"&colon;\": \":\",\n      \"&colone;\": \"≔\",\n      \"&coloneq;\": \"≔\",\n      \"&comma;\": \",\",\n      \"&commat;\": \"@\",\n      \"&comp;\": \"∁\",\n      \"&compfn;\": \"∘\",\n      \"&complement;\": \"∁\",\n      \"&complexes;\": \"ℂ\",\n      \"&cong;\": \"≅\",\n      \"&congdot;\": \"⩭\",\n      \"&conint;\": \"∮\",\n      \"&copf;\": \"𝕔\",\n      \"&coprod;\": \"∐\",\n      \"&copy\": \"©\",\n      \"&copy;\": \"©\",\n      \"&copysr;\": \"℗\",\n      \"&crarr;\": \"↵\",\n      \"&cross;\": \"✗\",\n      \"&cscr;\": \"𝒸\",\n      \"&csub;\": \"⫏\",\n      \"&csube;\": \"⫑\",\n      \"&csup;\": \"⫐\",\n      \"&csupe;\": \"⫒\",\n      \"&ctdot;\": \"⋯\",\n      \"&cudarrl;\": \"⤸\",\n      \"&cudarrr;\": \"⤵\",\n      \"&cuepr;\": \"⋞\",\n      \"&cuesc;\": \"⋟\",\n      \"&cularr;\": \"↶\",\n      \"&cularrp;\": \"⤽\",\n      \"&cup;\": \"∪\",\n      \"&cupbrcap;\": \"⩈\",\n      \"&cupcap;\": \"⩆\",\n      \"&cupcup;\": \"⩊\",\n      \"&cupdot;\": \"⊍\",\n      \"&cupor;\": \"⩅\",\n      \"&cups;\": \"∪︀\",\n      \"&curarr;\": \"↷\",\n      \"&curarrm;\": \"⤼\",\n      \"&curlyeqprec;\": \"⋞\",\n      \"&curlyeqsucc;\": \"⋟\",\n      \"&curlyvee;\": \"⋎\",\n      \"&curlywedge;\": \"⋏\",\n      \"&curren\": \"¤\",\n      \"&curren;\": \"¤\",\n      \"&curvearrowleft;\": \"↶\",\n      \"&curvearrowright;\": \"↷\",\n      \"&cuvee;\": \"⋎\",\n      \"&cuwed;\": \"⋏\",\n      \"&cwconint;\": \"∲\",\n      \"&cwint;\": \"∱\",\n      \"&cylcty;\": \"⌭\",\n      \"&dArr;\": \"⇓\",\n      \"&dHar;\": \"⥥\",\n      \"&dagger;\": \"†\",\n      \"&daleth;\": \"ℸ\",\n      \"&darr;\": \"↓\",\n      \"&dash;\": \"‐\",\n      \"&dashv;\": \"⊣\",\n      \"&dbkarow;\": \"⤏\",\n      \"&dblac;\": \"˝\",\n      \"&dcaron;\": \"ď\",\n      \"&dcy;\": \"д\",\n      \"&dd;\": \"ⅆ\",\n      \"&ddagger;\": \"‡\",\n      \"&ddarr;\": \"⇊\",\n      \"&ddotseq;\": \"⩷\",\n      \"&deg\": \"°\",\n      \"&deg;\": \"°\",\n      \"&delta;\": \"δ\",\n      \"&demptyv;\": \"⦱\",\n      \"&dfisht;\": \"⥿\",\n      \"&dfr;\": \"𝔡\",\n      \"&dharl;\": \"⇃\",\n      \"&dharr;\": \"⇂\",\n      \"&diam;\": \"⋄\",\n      \"&diamond;\": \"⋄\",\n      \"&diamondsuit;\": \"♦\",\n      \"&diams;\": \"♦\",\n      \"&die;\": \"¨\",\n      \"&digamma;\": \"ϝ\",\n      \"&disin;\": \"⋲\",\n      \"&div;\": \"÷\",\n      \"&divide\": \"÷\",\n      \"&divide;\": \"÷\",\n      \"&divideontimes;\": \"⋇\",\n      \"&divonx;\": \"⋇\",\n      \"&djcy;\": \"ђ\",\n      \"&dlcorn;\": \"⌞\",\n      \"&dlcrop;\": \"⌍\",\n      \"&dollar;\": \"$\",\n      \"&dopf;\": \"𝕕\",\n      \"&dot;\": \"˙\",\n      \"&doteq;\": \"≐\",\n      \"&doteqdot;\": \"≑\",\n      \"&dotminus;\": \"∸\",\n      \"&dotplus;\": \"∔\",\n      \"&dotsquare;\": \"⊡\",\n      \"&doublebarwedge;\": \"⌆\",\n      \"&downarrow;\": \"↓\",\n      \"&downdownarrows;\": \"⇊\",\n      \"&downharpoonleft;\": \"⇃\",\n      \"&downharpoonright;\": \"⇂\",\n      \"&drbkarow;\": \"⤐\",\n      \"&drcorn;\": \"⌟\",\n      \"&drcrop;\": \"⌌\",\n      \"&dscr;\": \"𝒹\",\n      \"&dscy;\": \"ѕ\",\n      \"&dsol;\": \"⧶\",\n      \"&dstrok;\": \"đ\",\n      \"&dtdot;\": \"⋱\",\n      \"&dtri;\": \"▿\",\n      \"&dtrif;\": \"▾\",\n      \"&duarr;\": \"⇵\",\n      \"&duhar;\": \"⥯\",\n      \"&dwangle;\": \"⦦\",\n      \"&dzcy;\": \"џ\",\n      \"&dzigrarr;\": \"⟿\",\n      \"&eDDot;\": \"⩷\",\n      \"&eDot;\": \"≑\",\n      \"&eacute\": \"é\",\n      \"&eacute;\": \"é\",\n      \"&easter;\": \"⩮\",\n      \"&ecaron;\": \"ě\",\n      \"&ecir;\": \"≖\",\n      \"&ecirc\": \"ê\",\n      \"&ecirc;\": \"ê\",\n      \"&ecolon;\": \"≕\",\n      \"&ecy;\": \"э\",\n      \"&edot;\": \"ė\",\n      \"&ee;\": \"ⅇ\",\n      \"&efDot;\": \"≒\",\n      \"&efr;\": \"𝔢\",\n      \"&eg;\": \"⪚\",\n      \"&egrave\": \"è\",\n      \"&egrave;\": \"è\",\n      \"&egs;\": \"⪖\",\n      \"&egsdot;\": \"⪘\",\n      \"&el;\": \"⪙\",\n      \"&elinters;\": \"⏧\",\n      \"&ell;\": \"ℓ\",\n      \"&els;\": \"⪕\",\n      \"&elsdot;\": \"⪗\",\n      \"&emacr;\": \"ē\",\n      \"&empty;\": \"∅\",\n      \"&emptyset;\": \"∅\",\n      \"&emptyv;\": \"∅\",\n      \"&emsp13;\": \" \",\n      \"&emsp14;\": \" \",\n      \"&emsp;\": \" \",\n      \"&eng;\": \"ŋ\",\n      \"&ensp;\": \" \",\n      \"&eogon;\": \"ę\",\n      \"&eopf;\": \"𝕖\",\n      \"&epar;\": \"⋕\",\n      \"&eparsl;\": \"⧣\",\n      \"&eplus;\": \"⩱\",\n      \"&epsi;\": \"ε\",\n      \"&epsilon;\": \"ε\",\n      \"&epsiv;\": \"ϵ\",\n      \"&eqcirc;\": \"≖\",\n      \"&eqcolon;\": \"≕\",\n      \"&eqsim;\": \"≂\",\n      \"&eqslantgtr;\": \"⪖\",\n      \"&eqslantless;\": \"⪕\",\n      \"&equals;\": \"=\",\n      \"&equest;\": \"≟\",\n      \"&equiv;\": \"≡\",\n      \"&equivDD;\": \"⩸\",\n      \"&eqvparsl;\": \"⧥\",\n      \"&erDot;\": \"≓\",\n      \"&erarr;\": \"⥱\",\n      \"&escr;\": \"ℯ\",\n      \"&esdot;\": \"≐\",\n      \"&esim;\": \"≂\",\n      \"&eta;\": \"η\",\n      \"&eth\": \"ð\",\n      \"&eth;\": \"ð\",\n      \"&euml\": \"ë\",\n      \"&euml;\": \"ë\",\n      \"&euro;\": \"€\",\n      \"&excl;\": \"!\",\n      \"&exist;\": \"∃\",\n      \"&expectation;\": \"ℰ\",\n      \"&exponentiale;\": \"ⅇ\",\n      \"&fallingdotseq;\": \"≒\",\n      \"&fcy;\": \"ф\",\n      \"&female;\": \"♀\",\n      \"&ffilig;\": \"ffi\",\n      \"&fflig;\": \"ff\",\n      \"&ffllig;\": \"ffl\",\n      \"&ffr;\": \"𝔣\",\n      \"&filig;\": \"fi\",\n      \"&fjlig;\": \"fj\",\n      \"&flat;\": \"♭\",\n      \"&fllig;\": \"fl\",\n      \"&fltns;\": \"▱\",\n      \"&fnof;\": \"ƒ\",\n      \"&fopf;\": \"𝕗\",\n      \"&forall;\": \"∀\",\n      \"&fork;\": \"⋔\",\n      \"&forkv;\": \"⫙\",\n      \"&fpartint;\": \"⨍\",\n      \"&frac12\": \"½\",\n      \"&frac12;\": \"½\",\n      \"&frac13;\": \"⅓\",\n      \"&frac14\": \"¼\",\n      \"&frac14;\": \"¼\",\n      \"&frac15;\": \"⅕\",\n      \"&frac16;\": \"⅙\",\n      \"&frac18;\": \"⅛\",\n      \"&frac23;\": \"⅔\",\n      \"&frac25;\": \"⅖\",\n      \"&frac34\": \"¾\",\n      \"&frac34;\": \"¾\",\n      \"&frac35;\": \"⅗\",\n      \"&frac38;\": \"⅜\",\n      \"&frac45;\": \"⅘\",\n      \"&frac56;\": \"⅚\",\n      \"&frac58;\": \"⅝\",\n      \"&frac78;\": \"⅞\",\n      \"&frasl;\": \"⁄\",\n      \"&frown;\": \"⌢\",\n      \"&fscr;\": \"𝒻\",\n      \"&gE;\": \"≧\",\n      \"&gEl;\": \"⪌\",\n      \"&gacute;\": \"ǵ\",\n      \"&gamma;\": \"γ\",\n      \"&gammad;\": \"ϝ\",\n      \"&gap;\": \"⪆\",\n      \"&gbreve;\": \"ğ\",\n      \"&gcirc;\": \"ĝ\",\n      \"&gcy;\": \"г\",\n      \"&gdot;\": \"ġ\",\n      \"&ge;\": \"≥\",\n      \"&gel;\": \"⋛\",\n      \"&geq;\": \"≥\",\n      \"&geqq;\": \"≧\",\n      \"&geqslant;\": \"⩾\",\n      \"&ges;\": \"⩾\",\n      \"&gescc;\": \"⪩\",\n      \"&gesdot;\": \"⪀\",\n      \"&gesdoto;\": \"⪂\",\n      \"&gesdotol;\": \"⪄\",\n      \"&gesl;\": \"⋛︀\",\n      \"&gesles;\": \"⪔\",\n      \"&gfr;\": \"𝔤\",\n      \"&gg;\": \"≫\",\n      \"&ggg;\": \"⋙\",\n      \"&gimel;\": \"ℷ\",\n      \"&gjcy;\": \"ѓ\",\n      \"&gl;\": \"≷\",\n      \"&glE;\": \"⪒\",\n      \"&gla;\": \"⪥\",\n      \"&glj;\": \"⪤\",\n      \"&gnE;\": \"≩\",\n      \"&gnap;\": \"⪊\",\n      \"&gnapprox;\": \"⪊\",\n      \"&gne;\": \"⪈\",\n      \"&gneq;\": \"⪈\",\n      \"&gneqq;\": \"≩\",\n      \"&gnsim;\": \"⋧\",\n      \"&gopf;\": \"𝕘\",\n      \"&grave;\": \"`\",\n      \"&gscr;\": \"ℊ\",\n      \"&gsim;\": \"≳\",\n      \"&gsime;\": \"⪎\",\n      \"&gsiml;\": \"⪐\",\n      \"&gt\": \">\",\n      \"&gt;\": \">\",\n      \"&gtcc;\": \"⪧\",\n      \"&gtcir;\": \"⩺\",\n      \"&gtdot;\": \"⋗\",\n      \"&gtlPar;\": \"⦕\",\n      \"&gtquest;\": \"⩼\",\n      \"&gtrapprox;\": \"⪆\",\n      \"&gtrarr;\": \"⥸\",\n      \"&gtrdot;\": \"⋗\",\n      \"&gtreqless;\": \"⋛\",\n      \"&gtreqqless;\": \"⪌\",\n      \"&gtrless;\": \"≷\",\n      \"&gtrsim;\": \"≳\",\n      \"&gvertneqq;\": \"≩︀\",\n      \"&gvnE;\": \"≩︀\",\n      \"&hArr;\": \"⇔\",\n      \"&hairsp;\": \" \",\n      \"&half;\": \"½\",\n      \"&hamilt;\": \"ℋ\",\n      \"&hardcy;\": \"ъ\",\n      \"&harr;\": \"↔\",\n      \"&harrcir;\": \"⥈\",\n      \"&harrw;\": \"↭\",\n      \"&hbar;\": \"ℏ\",\n      \"&hcirc;\": \"ĥ\",\n      \"&hearts;\": \"♥\",\n      \"&heartsuit;\": \"♥\",\n      \"&hellip;\": \"…\",\n      \"&hercon;\": \"⊹\",\n      \"&hfr;\": \"𝔥\",\n      \"&hksearow;\": \"⤥\",\n      \"&hkswarow;\": \"⤦\",\n      \"&hoarr;\": \"⇿\",\n      \"&homtht;\": \"∻\",\n      \"&hookleftarrow;\": \"↩\",\n      \"&hookrightarrow;\": \"↪\",\n      \"&hopf;\": \"𝕙\",\n      \"&horbar;\": \"―\",\n      \"&hscr;\": \"𝒽\",\n      \"&hslash;\": \"ℏ\",\n      \"&hstrok;\": \"ħ\",\n      \"&hybull;\": \"⁃\",\n      \"&hyphen;\": \"‐\",\n      \"&iacute\": \"í\",\n      \"&iacute;\": \"í\",\n      \"&ic;\": \"⁣\",\n      \"&icirc\": \"î\",\n      \"&icirc;\": \"î\",\n      \"&icy;\": \"и\",\n      \"&iecy;\": \"е\",\n      \"&iexcl\": \"¡\",\n      \"&iexcl;\": \"¡\",\n      \"&iff;\": \"⇔\",\n      \"&ifr;\": \"𝔦\",\n      \"&igrave\": \"ì\",\n      \"&igrave;\": \"ì\",\n      \"&ii;\": \"ⅈ\",\n      \"&iiiint;\": \"⨌\",\n      \"&iiint;\": \"∭\",\n      \"&iinfin;\": \"⧜\",\n      \"&iiota;\": \"℩\",\n      \"&ijlig;\": \"ij\",\n      \"&imacr;\": \"ī\",\n      \"&image;\": \"ℑ\",\n      \"&imagline;\": \"ℐ\",\n      \"&imagpart;\": \"ℑ\",\n      \"&imath;\": \"ı\",\n      \"&imof;\": \"⊷\",\n      \"&imped;\": \"Ƶ\",\n      \"&in;\": \"∈\",\n      \"&incare;\": \"℅\",\n      \"&infin;\": \"∞\",\n      \"&infintie;\": \"⧝\",\n      \"&inodot;\": \"ı\",\n      \"&int;\": \"∫\",\n      \"&intcal;\": \"⊺\",\n      \"&integers;\": \"ℤ\",\n      \"&intercal;\": \"⊺\",\n      \"&intlarhk;\": \"⨗\",\n      \"&intprod;\": \"⨼\",\n      \"&iocy;\": \"ё\",\n      \"&iogon;\": \"į\",\n      \"&iopf;\": \"𝕚\",\n      \"&iota;\": \"ι\",\n      \"&iprod;\": \"⨼\",\n      \"&iquest\": \"¿\",\n      \"&iquest;\": \"¿\",\n      \"&iscr;\": \"𝒾\",\n      \"&isin;\": \"∈\",\n      \"&isinE;\": \"⋹\",\n      \"&isindot;\": \"⋵\",\n      \"&isins;\": \"⋴\",\n      \"&isinsv;\": \"⋳\",\n      \"&isinv;\": \"∈\",\n      \"&it;\": \"⁢\",\n      \"&itilde;\": \"ĩ\",\n      \"&iukcy;\": \"і\",\n      \"&iuml\": \"ï\",\n      \"&iuml;\": \"ï\",\n      \"&jcirc;\": \"ĵ\",\n      \"&jcy;\": \"й\",\n      \"&jfr;\": \"𝔧\",\n      \"&jmath;\": \"ȷ\",\n      \"&jopf;\": \"𝕛\",\n      \"&jscr;\": \"𝒿\",\n      \"&jsercy;\": \"ј\",\n      \"&jukcy;\": \"є\",\n      \"&kappa;\": \"κ\",\n      \"&kappav;\": \"ϰ\",\n      \"&kcedil;\": \"ķ\",\n      \"&kcy;\": \"к\",\n      \"&kfr;\": \"𝔨\",\n      \"&kgreen;\": \"ĸ\",\n      \"&khcy;\": \"х\",\n      \"&kjcy;\": \"ќ\",\n      \"&kopf;\": \"𝕜\",\n      \"&kscr;\": \"𝓀\",\n      \"&lAarr;\": \"⇚\",\n      \"&lArr;\": \"⇐\",\n      \"&lAtail;\": \"⤛\",\n      \"&lBarr;\": \"⤎\",\n      \"&lE;\": \"≦\",\n      \"&lEg;\": \"⪋\",\n      \"&lHar;\": \"⥢\",\n      \"&lacute;\": \"ĺ\",\n      \"&laemptyv;\": \"⦴\",\n      \"&lagran;\": \"ℒ\",\n      \"&lambda;\": \"λ\",\n      \"&lang;\": \"⟨\",\n      \"&langd;\": \"⦑\",\n      \"&langle;\": \"⟨\",\n      \"&lap;\": \"⪅\",\n      \"&laquo\": \"«\",\n      \"&laquo;\": \"«\",\n      \"&larr;\": \"←\",\n      \"&larrb;\": \"⇤\",\n      \"&larrbfs;\": \"⤟\",\n      \"&larrfs;\": \"⤝\",\n      \"&larrhk;\": \"↩\",\n      \"&larrlp;\": \"↫\",\n      \"&larrpl;\": \"⤹\",\n      \"&larrsim;\": \"⥳\",\n      \"&larrtl;\": \"↢\",\n      \"&lat;\": \"⪫\",\n      \"&latail;\": \"⤙\",\n      \"&late;\": \"⪭\",\n      \"&lates;\": \"⪭︀\",\n      \"&lbarr;\": \"⤌\",\n      \"&lbbrk;\": \"❲\",\n      \"&lbrace;\": \"{\",\n      \"&lbrack;\": \"[\",\n      \"&lbrke;\": \"⦋\",\n      \"&lbrksld;\": \"⦏\",\n      \"&lbrkslu;\": \"⦍\",\n      \"&lcaron;\": \"ľ\",\n      \"&lcedil;\": \"ļ\",\n      \"&lceil;\": \"⌈\",\n      \"&lcub;\": \"{\",\n      \"&lcy;\": \"л\",\n      \"&ldca;\": \"⤶\",\n      \"&ldquo;\": \"“\",\n      \"&ldquor;\": \"„\",\n      \"&ldrdhar;\": \"⥧\",\n      \"&ldrushar;\": \"⥋\",\n      \"&ldsh;\": \"↲\",\n      \"&le;\": \"≤\",\n      \"&leftarrow;\": \"←\",\n      \"&leftarrowtail;\": \"↢\",\n      \"&leftharpoondown;\": \"↽\",\n      \"&leftharpoonup;\": \"↼\",\n      \"&leftleftarrows;\": \"⇇\",\n      \"&leftrightarrow;\": \"↔\",\n      \"&leftrightarrows;\": \"⇆\",\n      \"&leftrightharpoons;\": \"⇋\",\n      \"&leftrightsquigarrow;\": \"↭\",\n      \"&leftthreetimes;\": \"⋋\",\n      \"&leg;\": \"⋚\",\n      \"&leq;\": \"≤\",\n      \"&leqq;\": \"≦\",\n      \"&leqslant;\": \"⩽\",\n      \"&les;\": \"⩽\",\n      \"&lescc;\": \"⪨\",\n      \"&lesdot;\": \"⩿\",\n      \"&lesdoto;\": \"⪁\",\n      \"&lesdotor;\": \"⪃\",\n      \"&lesg;\": \"⋚︀\",\n      \"&lesges;\": \"⪓\",\n      \"&lessapprox;\": \"⪅\",\n      \"&lessdot;\": \"⋖\",\n      \"&lesseqgtr;\": \"⋚\",\n      \"&lesseqqgtr;\": \"⪋\",\n      \"&lessgtr;\": \"≶\",\n      \"&lesssim;\": \"≲\",\n      \"&lfisht;\": \"⥼\",\n      \"&lfloor;\": \"⌊\",\n      \"&lfr;\": \"𝔩\",\n      \"&lg;\": \"≶\",\n      \"&lgE;\": \"⪑\",\n      \"&lhard;\": \"↽\",\n      \"&lharu;\": \"↼\",\n      \"&lharul;\": \"⥪\",\n      \"&lhblk;\": \"▄\",\n      \"&ljcy;\": \"љ\",\n      \"&ll;\": \"≪\",\n      \"&llarr;\": \"⇇\",\n      \"&llcorner;\": \"⌞\",\n      \"&llhard;\": \"⥫\",\n      \"&lltri;\": \"◺\",\n      \"&lmidot;\": \"ŀ\",\n      \"&lmoust;\": \"⎰\",\n      \"&lmoustache;\": \"⎰\",\n      \"&lnE;\": \"≨\",\n      \"&lnap;\": \"⪉\",\n      \"&lnapprox;\": \"⪉\",\n      \"&lne;\": \"⪇\",\n      \"&lneq;\": \"⪇\",\n      \"&lneqq;\": \"≨\",\n      \"&lnsim;\": \"⋦\",\n      \"&loang;\": \"⟬\",\n      \"&loarr;\": \"⇽\",\n      \"&lobrk;\": \"⟦\",\n      \"&longleftarrow;\": \"⟵\",\n      \"&longleftrightarrow;\": \"⟷\",\n      \"&longmapsto;\": \"⟼\",\n      \"&longrightarrow;\": \"⟶\",\n      \"&looparrowleft;\": \"↫\",\n      \"&looparrowright;\": \"↬\",\n      \"&lopar;\": \"⦅\",\n      \"&lopf;\": \"𝕝\",\n      \"&loplus;\": \"⨭\",\n      \"&lotimes;\": \"⨴\",\n      \"&lowast;\": \"∗\",\n      \"&lowbar;\": \"_\",\n      \"&loz;\": \"◊\",\n      \"&lozenge;\": \"◊\",\n      \"&lozf;\": \"⧫\",\n      \"&lpar;\": \"(\",\n      \"&lparlt;\": \"⦓\",\n      \"&lrarr;\": \"⇆\",\n      \"&lrcorner;\": \"⌟\",\n      \"&lrhar;\": \"⇋\",\n      \"&lrhard;\": \"⥭\",\n      \"&lrm;\": \"‎\",\n      \"&lrtri;\": \"⊿\",\n      \"&lsaquo;\": \"‹\",\n      \"&lscr;\": \"𝓁\",\n      \"&lsh;\": \"↰\",\n      \"&lsim;\": \"≲\",\n      \"&lsime;\": \"⪍\",\n      \"&lsimg;\": \"⪏\",\n      \"&lsqb;\": \"[\",\n      \"&lsquo;\": \"‘\",\n      \"&lsquor;\": \"‚\",\n      \"&lstrok;\": \"ł\",\n      \"&lt\": \"<\",\n      \"&lt;\": \"<\",\n      \"&ltcc;\": \"⪦\",\n      \"&ltcir;\": \"⩹\",\n      \"&ltdot;\": \"⋖\",\n      \"&lthree;\": \"⋋\",\n      \"&ltimes;\": \"⋉\",\n      \"&ltlarr;\": \"⥶\",\n      \"&ltquest;\": \"⩻\",\n      \"&ltrPar;\": \"⦖\",\n      \"&ltri;\": \"◃\",\n      \"&ltrie;\": \"⊴\",\n      \"&ltrif;\": \"◂\",\n      \"&lurdshar;\": \"⥊\",\n      \"&luruhar;\": \"⥦\",\n      \"&lvertneqq;\": \"≨︀\",\n      \"&lvnE;\": \"≨︀\",\n      \"&mDDot;\": \"∺\",\n      \"&macr\": \"¯\",\n      \"&macr;\": \"¯\",\n      \"&male;\": \"♂\",\n      \"&malt;\": \"✠\",\n      \"&maltese;\": \"✠\",\n      \"&map;\": \"↦\",\n      \"&mapsto;\": \"↦\",\n      \"&mapstodown;\": \"↧\",\n      \"&mapstoleft;\": \"↤\",\n      \"&mapstoup;\": \"↥\",\n      \"&marker;\": \"▮\",\n      \"&mcomma;\": \"⨩\",\n      \"&mcy;\": \"м\",\n      \"&mdash;\": \"—\",\n      \"&measuredangle;\": \"∡\",\n      \"&mfr;\": \"𝔪\",\n      \"&mho;\": \"℧\",\n      \"&micro\": \"µ\",\n      \"&micro;\": \"µ\",\n      \"&mid;\": \"∣\",\n      \"&midast;\": \"*\",\n      \"&midcir;\": \"⫰\",\n      \"&middot\": \"·\",\n      \"&middot;\": \"·\",\n      \"&minus;\": \"−\",\n      \"&minusb;\": \"⊟\",\n      \"&minusd;\": \"∸\",\n      \"&minusdu;\": \"⨪\",\n      \"&mlcp;\": \"⫛\",\n      \"&mldr;\": \"…\",\n      \"&mnplus;\": \"∓\",\n      \"&models;\": \"⊧\",\n      \"&mopf;\": \"𝕞\",\n      \"&mp;\": \"∓\",\n      \"&mscr;\": \"𝓂\",\n      \"&mstpos;\": \"∾\",\n      \"&mu;\": \"μ\",\n      \"&multimap;\": \"⊸\",\n      \"&mumap;\": \"⊸\",\n      \"&nGg;\": \"⋙̸\",\n      \"&nGt;\": \"≫⃒\",\n      \"&nGtv;\": \"≫̸\",\n      \"&nLeftarrow;\": \"⇍\",\n      \"&nLeftrightarrow;\": \"⇎\",\n      \"&nLl;\": \"⋘̸\",\n      \"&nLt;\": \"≪⃒\",\n      \"&nLtv;\": \"≪̸\",\n      \"&nRightarrow;\": \"⇏\",\n      \"&nVDash;\": \"⊯\",\n      \"&nVdash;\": \"⊮\",\n      \"&nabla;\": \"∇\",\n      \"&nacute;\": \"ń\",\n      \"&nang;\": \"∠⃒\",\n      \"&nap;\": \"≉\",\n      \"&napE;\": \"⩰̸\",\n      \"&napid;\": \"≋̸\",\n      \"&napos;\": \"ʼn\",\n      \"&napprox;\": \"≉\",\n      \"&natur;\": \"♮\",\n      \"&natural;\": \"♮\",\n      \"&naturals;\": \"ℕ\",\n      \"&nbsp\": \" \",\n      \"&nbsp;\": \" \",\n      \"&nbump;\": \"≎̸\",\n      \"&nbumpe;\": \"≏̸\",\n      \"&ncap;\": \"⩃\",\n      \"&ncaron;\": \"ň\",\n      \"&ncedil;\": \"ņ\",\n      \"&ncong;\": \"≇\",\n      \"&ncongdot;\": \"⩭̸\",\n      \"&ncup;\": \"⩂\",\n      \"&ncy;\": \"н\",\n      \"&ndash;\": \"–\",\n      \"&ne;\": \"≠\",\n      \"&neArr;\": \"⇗\",\n      \"&nearhk;\": \"⤤\",\n      \"&nearr;\": \"↗\",\n      \"&nearrow;\": \"↗\",\n      \"&nedot;\": \"≐̸\",\n      \"&nequiv;\": \"≢\",\n      \"&nesear;\": \"⤨\",\n      \"&nesim;\": \"≂̸\",\n      \"&nexist;\": \"∄\",\n      \"&nexists;\": \"∄\",\n      \"&nfr;\": \"𝔫\",\n      \"&ngE;\": \"≧̸\",\n      \"&nge;\": \"≱\",\n      \"&ngeq;\": \"≱\",\n      \"&ngeqq;\": \"≧̸\",\n      \"&ngeqslant;\": \"⩾̸\",\n      \"&nges;\": \"⩾̸\",\n      \"&ngsim;\": \"≵\",\n      \"&ngt;\": \"≯\",\n      \"&ngtr;\": \"≯\",\n      \"&nhArr;\": \"⇎\",\n      \"&nharr;\": \"↮\",\n      \"&nhpar;\": \"⫲\",\n      \"&ni;\": \"∋\",\n      \"&nis;\": \"⋼\",\n      \"&nisd;\": \"⋺\",\n      \"&niv;\": \"∋\",\n      \"&njcy;\": \"њ\",\n      \"&nlArr;\": \"⇍\",\n      \"&nlE;\": \"≦̸\",\n      \"&nlarr;\": \"↚\",\n      \"&nldr;\": \"‥\",\n      \"&nle;\": \"≰\",\n      \"&nleftarrow;\": \"↚\",\n      \"&nleftrightarrow;\": \"↮\",\n      \"&nleq;\": \"≰\",\n      \"&nleqq;\": \"≦̸\",\n      \"&nleqslant;\": \"⩽̸\",\n      \"&nles;\": \"⩽̸\",\n      \"&nless;\": \"≮\",\n      \"&nlsim;\": \"≴\",\n      \"&nlt;\": \"≮\",\n      \"&nltri;\": \"⋪\",\n      \"&nltrie;\": \"⋬\",\n      \"&nmid;\": \"∤\",\n      \"&nopf;\": \"𝕟\",\n      \"&not\": \"¬\",\n      \"&not;\": \"¬\",\n      \"&notin;\": \"∉\",\n      \"&notinE;\": \"⋹̸\",\n      \"&notindot;\": \"⋵̸\",\n      \"&notinva;\": \"∉\",\n      \"&notinvb;\": \"⋷\",\n      \"&notinvc;\": \"⋶\",\n      \"&notni;\": \"∌\",\n      \"&notniva;\": \"∌\",\n      \"&notnivb;\": \"⋾\",\n      \"&notnivc;\": \"⋽\",\n      \"&npar;\": \"∦\",\n      \"&nparallel;\": \"∦\",\n      \"&nparsl;\": \"⫽⃥\",\n      \"&npart;\": \"∂̸\",\n      \"&npolint;\": \"⨔\",\n      \"&npr;\": \"⊀\",\n      \"&nprcue;\": \"⋠\",\n      \"&npre;\": \"⪯̸\",\n      \"&nprec;\": \"⊀\",\n      \"&npreceq;\": \"⪯̸\",\n      \"&nrArr;\": \"⇏\",\n      \"&nrarr;\": \"↛\",\n      \"&nrarrc;\": \"⤳̸\",\n      \"&nrarrw;\": \"↝̸\",\n      \"&nrightarrow;\": \"↛\",\n      \"&nrtri;\": \"⋫\",\n      \"&nrtrie;\": \"⋭\",\n      \"&nsc;\": \"⊁\",\n      \"&nsccue;\": \"⋡\",\n      \"&nsce;\": \"⪰̸\",\n      \"&nscr;\": \"𝓃\",\n      \"&nshortmid;\": \"∤\",\n      \"&nshortparallel;\": \"∦\",\n      \"&nsim;\": \"≁\",\n      \"&nsime;\": \"≄\",\n      \"&nsimeq;\": \"≄\",\n      \"&nsmid;\": \"∤\",\n      \"&nspar;\": \"∦\",\n      \"&nsqsube;\": \"⋢\",\n      \"&nsqsupe;\": \"⋣\",\n      \"&nsub;\": \"⊄\",\n      \"&nsubE;\": \"⫅̸\",\n      \"&nsube;\": \"⊈\",\n      \"&nsubset;\": \"⊂⃒\",\n      \"&nsubseteq;\": \"⊈\",\n      \"&nsubseteqq;\": \"⫅̸\",\n      \"&nsucc;\": \"⊁\",\n      \"&nsucceq;\": \"⪰̸\",\n      \"&nsup;\": \"⊅\",\n      \"&nsupE;\": \"⫆̸\",\n      \"&nsupe;\": \"⊉\",\n      \"&nsupset;\": \"⊃⃒\",\n      \"&nsupseteq;\": \"⊉\",\n      \"&nsupseteqq;\": \"⫆̸\",\n      \"&ntgl;\": \"≹\",\n      \"&ntilde\": \"ñ\",\n      \"&ntilde;\": \"ñ\",\n      \"&ntlg;\": \"≸\",\n      \"&ntriangleleft;\": \"⋪\",\n      \"&ntrianglelefteq;\": \"⋬\",\n      \"&ntriangleright;\": \"⋫\",\n      \"&ntrianglerighteq;\": \"⋭\",\n      \"&nu;\": \"ν\",\n      \"&num;\": \"#\",\n      \"&numero;\": \"№\",\n      \"&numsp;\": \" \",\n      \"&nvDash;\": \"⊭\",\n      \"&nvHarr;\": \"⤄\",\n      \"&nvap;\": \"≍⃒\",\n      \"&nvdash;\": \"⊬\",\n      \"&nvge;\": \"≥⃒\",\n      \"&nvgt;\": \">⃒\",\n      \"&nvinfin;\": \"⧞\",\n      \"&nvlArr;\": \"⤂\",\n      \"&nvle;\": \"≤⃒\",\n      \"&nvlt;\": \"<⃒\",\n      \"&nvltrie;\": \"⊴⃒\",\n      \"&nvrArr;\": \"⤃\",\n      \"&nvrtrie;\": \"⊵⃒\",\n      \"&nvsim;\": \"∼⃒\",\n      \"&nwArr;\": \"⇖\",\n      \"&nwarhk;\": \"⤣\",\n      \"&nwarr;\": \"↖\",\n      \"&nwarrow;\": \"↖\",\n      \"&nwnear;\": \"⤧\",\n      \"&oS;\": \"Ⓢ\",\n      \"&oacute\": \"ó\",\n      \"&oacute;\": \"ó\",\n      \"&oast;\": \"⊛\",\n      \"&ocir;\": \"⊚\",\n      \"&ocirc\": \"ô\",\n      \"&ocirc;\": \"ô\",\n      \"&ocy;\": \"о\",\n      \"&odash;\": \"⊝\",\n      \"&odblac;\": \"ő\",\n      \"&odiv;\": \"⨸\",\n      \"&odot;\": \"⊙\",\n      \"&odsold;\": \"⦼\",\n      \"&oelig;\": \"œ\",\n      \"&ofcir;\": \"⦿\",\n      \"&ofr;\": \"𝔬\",\n      \"&ogon;\": \"˛\",\n      \"&ograve\": \"ò\",\n      \"&ograve;\": \"ò\",\n      \"&ogt;\": \"⧁\",\n      \"&ohbar;\": \"⦵\",\n      \"&ohm;\": \"Ω\",\n      \"&oint;\": \"∮\",\n      \"&olarr;\": \"↺\",\n      \"&olcir;\": \"⦾\",\n      \"&olcross;\": \"⦻\",\n      \"&oline;\": \"‾\",\n      \"&olt;\": \"⧀\",\n      \"&omacr;\": \"ō\",\n      \"&omega;\": \"ω\",\n      \"&omicron;\": \"ο\",\n      \"&omid;\": \"⦶\",\n      \"&ominus;\": \"⊖\",\n      \"&oopf;\": \"𝕠\",\n      \"&opar;\": \"⦷\",\n      \"&operp;\": \"⦹\",\n      \"&oplus;\": \"⊕\",\n      \"&or;\": \"∨\",\n      \"&orarr;\": \"↻\",\n      \"&ord;\": \"⩝\",\n      \"&order;\": \"ℴ\",\n      \"&orderof;\": \"ℴ\",\n      \"&ordf\": \"ª\",\n      \"&ordf;\": \"ª\",\n      \"&ordm\": \"º\",\n      \"&ordm;\": \"º\",\n      \"&origof;\": \"⊶\",\n      \"&oror;\": \"⩖\",\n      \"&orslope;\": \"⩗\",\n      \"&orv;\": \"⩛\",\n      \"&oscr;\": \"ℴ\",\n      \"&oslash\": \"ø\",\n      \"&oslash;\": \"ø\",\n      \"&osol;\": \"⊘\",\n      \"&otilde\": \"õ\",\n      \"&otilde;\": \"õ\",\n      \"&otimes;\": \"⊗\",\n      \"&otimesas;\": \"⨶\",\n      \"&ouml\": \"ö\",\n      \"&ouml;\": \"ö\",\n      \"&ovbar;\": \"⌽\",\n      \"&par;\": \"∥\",\n      \"&para\": \"¶\",\n      \"&para;\": \"¶\",\n      \"&parallel;\": \"∥\",\n      \"&parsim;\": \"⫳\",\n      \"&parsl;\": \"⫽\",\n      \"&part;\": \"∂\",\n      \"&pcy;\": \"п\",\n      \"&percnt;\": \"%\",\n      \"&period;\": \".\",\n      \"&permil;\": \"‰\",\n      \"&perp;\": \"⊥\",\n      \"&pertenk;\": \"‱\",\n      \"&pfr;\": \"𝔭\",\n      \"&phi;\": \"φ\",\n      \"&phiv;\": \"ϕ\",\n      \"&phmmat;\": \"ℳ\",\n      \"&phone;\": \"☎\",\n      \"&pi;\": \"π\",\n      \"&pitchfork;\": \"⋔\",\n      \"&piv;\": \"ϖ\",\n      \"&planck;\": \"ℏ\",\n      \"&planckh;\": \"ℎ\",\n      \"&plankv;\": \"ℏ\",\n      \"&plus;\": \"+\",\n      \"&plusacir;\": \"⨣\",\n      \"&plusb;\": \"⊞\",\n      \"&pluscir;\": \"⨢\",\n      \"&plusdo;\": \"∔\",\n      \"&plusdu;\": \"⨥\",\n      \"&pluse;\": \"⩲\",\n      \"&plusmn\": \"±\",\n      \"&plusmn;\": \"±\",\n      \"&plussim;\": \"⨦\",\n      \"&plustwo;\": \"⨧\",\n      \"&pm;\": \"±\",\n      \"&pointint;\": \"⨕\",\n      \"&popf;\": \"𝕡\",\n      \"&pound\": \"£\",\n      \"&pound;\": \"£\",\n      \"&pr;\": \"≺\",\n      \"&prE;\": \"⪳\",\n      \"&prap;\": \"⪷\",\n      \"&prcue;\": \"≼\",\n      \"&pre;\": \"⪯\",\n      \"&prec;\": \"≺\",\n      \"&precapprox;\": \"⪷\",\n      \"&preccurlyeq;\": \"≼\",\n      \"&preceq;\": \"⪯\",\n      \"&precnapprox;\": \"⪹\",\n      \"&precneqq;\": \"⪵\",\n      \"&precnsim;\": \"⋨\",\n      \"&precsim;\": \"≾\",\n      \"&prime;\": \"′\",\n      \"&primes;\": \"ℙ\",\n      \"&prnE;\": \"⪵\",\n      \"&prnap;\": \"⪹\",\n      \"&prnsim;\": \"⋨\",\n      \"&prod;\": \"∏\",\n      \"&profalar;\": \"⌮\",\n      \"&profline;\": \"⌒\",\n      \"&profsurf;\": \"⌓\",\n      \"&prop;\": \"∝\",\n      \"&propto;\": \"∝\",\n      \"&prsim;\": \"≾\",\n      \"&prurel;\": \"⊰\",\n      \"&pscr;\": \"𝓅\",\n      \"&psi;\": \"ψ\",\n      \"&puncsp;\": \" \",\n      \"&qfr;\": \"𝔮\",\n      \"&qint;\": \"⨌\",\n      \"&qopf;\": \"𝕢\",\n      \"&qprime;\": \"⁗\",\n      \"&qscr;\": \"𝓆\",\n      \"&quaternions;\": \"ℍ\",\n      \"&quatint;\": \"⨖\",\n      \"&quest;\": \"?\",\n      \"&questeq;\": \"≟\",\n      \"&quot\": '\"',\n      \"&quot;\": '\"',\n      \"&rAarr;\": \"⇛\",\n      \"&rArr;\": \"⇒\",\n      \"&rAtail;\": \"⤜\",\n      \"&rBarr;\": \"⤏\",\n      \"&rHar;\": \"⥤\",\n      \"&race;\": \"∽̱\",\n      \"&racute;\": \"ŕ\",\n      \"&radic;\": \"√\",\n      \"&raemptyv;\": \"⦳\",\n      \"&rang;\": \"⟩\",\n      \"&rangd;\": \"⦒\",\n      \"&range;\": \"⦥\",\n      \"&rangle;\": \"⟩\",\n      \"&raquo\": \"»\",\n      \"&raquo;\": \"»\",\n      \"&rarr;\": \"→\",\n      \"&rarrap;\": \"⥵\",\n      \"&rarrb;\": \"⇥\",\n      \"&rarrbfs;\": \"⤠\",\n      \"&rarrc;\": \"⤳\",\n      \"&rarrfs;\": \"⤞\",\n      \"&rarrhk;\": \"↪\",\n      \"&rarrlp;\": \"↬\",\n      \"&rarrpl;\": \"⥅\",\n      \"&rarrsim;\": \"⥴\",\n      \"&rarrtl;\": \"↣\",\n      \"&rarrw;\": \"↝\",\n      \"&ratail;\": \"⤚\",\n      \"&ratio;\": \"∶\",\n      \"&rationals;\": \"ℚ\",\n      \"&rbarr;\": \"⤍\",\n      \"&rbbrk;\": \"❳\",\n      \"&rbrace;\": \"}\",\n      \"&rbrack;\": \"]\",\n      \"&rbrke;\": \"⦌\",\n      \"&rbrksld;\": \"⦎\",\n      \"&rbrkslu;\": \"⦐\",\n      \"&rcaron;\": \"ř\",\n      \"&rcedil;\": \"ŗ\",\n      \"&rceil;\": \"⌉\",\n      \"&rcub;\": \"}\",\n      \"&rcy;\": \"р\",\n      \"&rdca;\": \"⤷\",\n      \"&rdldhar;\": \"⥩\",\n      \"&rdquo;\": \"”\",\n      \"&rdquor;\": \"”\",\n      \"&rdsh;\": \"↳\",\n      \"&real;\": \"ℜ\",\n      \"&realine;\": \"ℛ\",\n      \"&realpart;\": \"ℜ\",\n      \"&reals;\": \"ℝ\",\n      \"&rect;\": \"▭\",\n      \"&reg\": \"®\",\n      \"&reg;\": \"®\",\n      \"&rfisht;\": \"⥽\",\n      \"&rfloor;\": \"⌋\",\n      \"&rfr;\": \"𝔯\",\n      \"&rhard;\": \"⇁\",\n      \"&rharu;\": \"⇀\",\n      \"&rharul;\": \"⥬\",\n      \"&rho;\": \"ρ\",\n      \"&rhov;\": \"ϱ\",\n      \"&rightarrow;\": \"→\",\n      \"&rightarrowtail;\": \"↣\",\n      \"&rightharpoondown;\": \"⇁\",\n      \"&rightharpoonup;\": \"⇀\",\n      \"&rightleftarrows;\": \"⇄\",\n      \"&rightleftharpoons;\": \"⇌\",\n      \"&rightrightarrows;\": \"⇉\",\n      \"&rightsquigarrow;\": \"↝\",\n      \"&rightthreetimes;\": \"⋌\",\n      \"&ring;\": \"˚\",\n      \"&risingdotseq;\": \"≓\",\n      \"&rlarr;\": \"⇄\",\n      \"&rlhar;\": \"⇌\",\n      \"&rlm;\": \"‏\",\n      \"&rmoust;\": \"⎱\",\n      \"&rmoustache;\": \"⎱\",\n      \"&rnmid;\": \"⫮\",\n      \"&roang;\": \"⟭\",\n      \"&roarr;\": \"⇾\",\n      \"&robrk;\": \"⟧\",\n      \"&ropar;\": \"⦆\",\n      \"&ropf;\": \"𝕣\",\n      \"&roplus;\": \"⨮\",\n      \"&rotimes;\": \"⨵\",\n      \"&rpar;\": \")\",\n      \"&rpargt;\": \"⦔\",\n      \"&rppolint;\": \"⨒\",\n      \"&rrarr;\": \"⇉\",\n      \"&rsaquo;\": \"›\",\n      \"&rscr;\": \"𝓇\",\n      \"&rsh;\": \"↱\",\n      \"&rsqb;\": \"]\",\n      \"&rsquo;\": \"’\",\n      \"&rsquor;\": \"’\",\n      \"&rthree;\": \"⋌\",\n      \"&rtimes;\": \"⋊\",\n      \"&rtri;\": \"▹\",\n      \"&rtrie;\": \"⊵\",\n      \"&rtrif;\": \"▸\",\n      \"&rtriltri;\": \"⧎\",\n      \"&ruluhar;\": \"⥨\",\n      \"&rx;\": \"℞\",\n      \"&sacute;\": \"ś\",\n      \"&sbquo;\": \"‚\",\n      \"&sc;\": \"≻\",\n      \"&scE;\": \"⪴\",\n      \"&scap;\": \"⪸\",\n      \"&scaron;\": \"š\",\n      \"&sccue;\": \"≽\",\n      \"&sce;\": \"⪰\",\n      \"&scedil;\": \"ş\",\n      \"&scirc;\": \"ŝ\",\n      \"&scnE;\": \"⪶\",\n      \"&scnap;\": \"⪺\",\n      \"&scnsim;\": \"⋩\",\n      \"&scpolint;\": \"⨓\",\n      \"&scsim;\": \"≿\",\n      \"&scy;\": \"с\",\n      \"&sdot;\": \"⋅\",\n      \"&sdotb;\": \"⊡\",\n      \"&sdote;\": \"⩦\",\n      \"&seArr;\": \"⇘\",\n      \"&searhk;\": \"⤥\",\n      \"&searr;\": \"↘\",\n      \"&searrow;\": \"↘\",\n      \"&sect\": \"§\",\n      \"&sect;\": \"§\",\n      \"&semi;\": \";\",\n      \"&seswar;\": \"⤩\",\n      \"&setminus;\": \"∖\",\n      \"&setmn;\": \"∖\",\n      \"&sext;\": \"✶\",\n      \"&sfr;\": \"𝔰\",\n      \"&sfrown;\": \"⌢\",\n      \"&sharp;\": \"♯\",\n      \"&shchcy;\": \"щ\",\n      \"&shcy;\": \"ш\",\n      \"&shortmid;\": \"∣\",\n      \"&shortparallel;\": \"∥\",\n      \"&shy\": \"­\",\n      \"&shy;\": \"­\",\n      \"&sigma;\": \"σ\",\n      \"&sigmaf;\": \"ς\",\n      \"&sigmav;\": \"ς\",\n      \"&sim;\": \"∼\",\n      \"&simdot;\": \"⩪\",\n      \"&sime;\": \"≃\",\n      \"&simeq;\": \"≃\",\n      \"&simg;\": \"⪞\",\n      \"&simgE;\": \"⪠\",\n      \"&siml;\": \"⪝\",\n      \"&simlE;\": \"⪟\",\n      \"&simne;\": \"≆\",\n      \"&simplus;\": \"⨤\",\n      \"&simrarr;\": \"⥲\",\n      \"&slarr;\": \"←\",\n      \"&smallsetminus;\": \"∖\",\n      \"&smashp;\": \"⨳\",\n      \"&smeparsl;\": \"⧤\",\n      \"&smid;\": \"∣\",\n      \"&smile;\": \"⌣\",\n      \"&smt;\": \"⪪\",\n      \"&smte;\": \"⪬\",\n      \"&smtes;\": \"⪬︀\",\n      \"&softcy;\": \"ь\",\n      \"&sol;\": \"/\",\n      \"&solb;\": \"⧄\",\n      \"&solbar;\": \"⌿\",\n      \"&sopf;\": \"𝕤\",\n      \"&spades;\": \"♠\",\n      \"&spadesuit;\": \"♠\",\n      \"&spar;\": \"∥\",\n      \"&sqcap;\": \"⊓\",\n      \"&sqcaps;\": \"⊓︀\",\n      \"&sqcup;\": \"⊔\",\n      \"&sqcups;\": \"⊔︀\",\n      \"&sqsub;\": \"⊏\",\n      \"&sqsube;\": \"⊑\",\n      \"&sqsubset;\": \"⊏\",\n      \"&sqsubseteq;\": \"⊑\",\n      \"&sqsup;\": \"⊐\",\n      \"&sqsupe;\": \"⊒\",\n      \"&sqsupset;\": \"⊐\",\n      \"&sqsupseteq;\": \"⊒\",\n      \"&squ;\": \"□\",\n      \"&square;\": \"□\",\n      \"&squarf;\": \"▪\",\n      \"&squf;\": \"▪\",\n      \"&srarr;\": \"→\",\n      \"&sscr;\": \"𝓈\",\n      \"&ssetmn;\": \"∖\",\n      \"&ssmile;\": \"⌣\",\n      \"&sstarf;\": \"⋆\",\n      \"&star;\": \"☆\",\n      \"&starf;\": \"★\",\n      \"&straightepsilon;\": \"ϵ\",\n      \"&straightphi;\": \"ϕ\",\n      \"&strns;\": \"¯\",\n      \"&sub;\": \"⊂\",\n      \"&subE;\": \"⫅\",\n      \"&subdot;\": \"⪽\",\n      \"&sube;\": \"⊆\",\n      \"&subedot;\": \"⫃\",\n      \"&submult;\": \"⫁\",\n      \"&subnE;\": \"⫋\",\n      \"&subne;\": \"⊊\",\n      \"&subplus;\": \"⪿\",\n      \"&subrarr;\": \"⥹\",\n      \"&subset;\": \"⊂\",\n      \"&subseteq;\": \"⊆\",\n      \"&subseteqq;\": \"⫅\",\n      \"&subsetneq;\": \"⊊\",\n      \"&subsetneqq;\": \"⫋\",\n      \"&subsim;\": \"⫇\",\n      \"&subsub;\": \"⫕\",\n      \"&subsup;\": \"⫓\",\n      \"&succ;\": \"≻\",\n      \"&succapprox;\": \"⪸\",\n      \"&succcurlyeq;\": \"≽\",\n      \"&succeq;\": \"⪰\",\n      \"&succnapprox;\": \"⪺\",\n      \"&succneqq;\": \"⪶\",\n      \"&succnsim;\": \"⋩\",\n      \"&succsim;\": \"≿\",\n      \"&sum;\": \"∑\",\n      \"&sung;\": \"♪\",\n      \"&sup1\": \"¹\",\n      \"&sup1;\": \"¹\",\n      \"&sup2\": \"²\",\n      \"&sup2;\": \"²\",\n      \"&sup3\": \"³\",\n      \"&sup3;\": \"³\",\n      \"&sup;\": \"⊃\",\n      \"&supE;\": \"⫆\",\n      \"&supdot;\": \"⪾\",\n      \"&supdsub;\": \"⫘\",\n      \"&supe;\": \"⊇\",\n      \"&supedot;\": \"⫄\",\n      \"&suphsol;\": \"⟉\",\n      \"&suphsub;\": \"⫗\",\n      \"&suplarr;\": \"⥻\",\n      \"&supmult;\": \"⫂\",\n      \"&supnE;\": \"⫌\",\n      \"&supne;\": \"⊋\",\n      \"&supplus;\": \"⫀\",\n      \"&supset;\": \"⊃\",\n      \"&supseteq;\": \"⊇\",\n      \"&supseteqq;\": \"⫆\",\n      \"&supsetneq;\": \"⊋\",\n      \"&supsetneqq;\": \"⫌\",\n      \"&supsim;\": \"⫈\",\n      \"&supsub;\": \"⫔\",\n      \"&supsup;\": \"⫖\",\n      \"&swArr;\": \"⇙\",\n      \"&swarhk;\": \"⤦\",\n      \"&swarr;\": \"↙\",\n      \"&swarrow;\": \"↙\",\n      \"&swnwar;\": \"⤪\",\n      \"&szlig\": \"ß\",\n      \"&szlig;\": \"ß\",\n      \"&target;\": \"⌖\",\n      \"&tau;\": \"τ\",\n      \"&tbrk;\": \"⎴\",\n      \"&tcaron;\": \"ť\",\n      \"&tcedil;\": \"ţ\",\n      \"&tcy;\": \"т\",\n      \"&tdot;\": \"⃛\",\n      \"&telrec;\": \"⌕\",\n      \"&tfr;\": \"𝔱\",\n      \"&there4;\": \"∴\",\n      \"&therefore;\": \"∴\",\n      \"&theta;\": \"θ\",\n      \"&thetasym;\": \"ϑ\",\n      \"&thetav;\": \"ϑ\",\n      \"&thickapprox;\": \"≈\",\n      \"&thicksim;\": \"∼\",\n      \"&thinsp;\": \" \",\n      \"&thkap;\": \"≈\",\n      \"&thksim;\": \"∼\",\n      \"&thorn\": \"þ\",\n      \"&thorn;\": \"þ\",\n      \"&tilde;\": \"˜\",\n      \"&times\": \"×\",\n      \"&times;\": \"×\",\n      \"&timesb;\": \"⊠\",\n      \"&timesbar;\": \"⨱\",\n      \"&timesd;\": \"⨰\",\n      \"&tint;\": \"∭\",\n      \"&toea;\": \"⤨\",\n      \"&top;\": \"⊤\",\n      \"&topbot;\": \"⌶\",\n      \"&topcir;\": \"⫱\",\n      \"&topf;\": \"𝕥\",\n      \"&topfork;\": \"⫚\",\n      \"&tosa;\": \"⤩\",\n      \"&tprime;\": \"‴\",\n      \"&trade;\": \"™\",\n      \"&triangle;\": \"▵\",\n      \"&triangledown;\": \"▿\",\n      \"&triangleleft;\": \"◃\",\n      \"&trianglelefteq;\": \"⊴\",\n      \"&triangleq;\": \"≜\",\n      \"&triangleright;\": \"▹\",\n      \"&trianglerighteq;\": \"⊵\",\n      \"&tridot;\": \"◬\",\n      \"&trie;\": \"≜\",\n      \"&triminus;\": \"⨺\",\n      \"&triplus;\": \"⨹\",\n      \"&trisb;\": \"⧍\",\n      \"&tritime;\": \"⨻\",\n      \"&trpezium;\": \"⏢\",\n      \"&tscr;\": \"𝓉\",\n      \"&tscy;\": \"ц\",\n      \"&tshcy;\": \"ћ\",\n      \"&tstrok;\": \"ŧ\",\n      \"&twixt;\": \"≬\",\n      \"&twoheadleftarrow;\": \"↞\",\n      \"&twoheadrightarrow;\": \"↠\",\n      \"&uArr;\": \"⇑\",\n      \"&uHar;\": \"⥣\",\n      \"&uacute\": \"ú\",\n      \"&uacute;\": \"ú\",\n      \"&uarr;\": \"↑\",\n      \"&ubrcy;\": \"ў\",\n      \"&ubreve;\": \"ŭ\",\n      \"&ucirc\": \"û\",\n      \"&ucirc;\": \"û\",\n      \"&ucy;\": \"у\",\n      \"&udarr;\": \"⇅\",\n      \"&udblac;\": \"ű\",\n      \"&udhar;\": \"⥮\",\n      \"&ufisht;\": \"⥾\",\n      \"&ufr;\": \"𝔲\",\n      \"&ugrave\": \"ù\",\n      \"&ugrave;\": \"ù\",\n      \"&uharl;\": \"↿\",\n      \"&uharr;\": \"↾\",\n      \"&uhblk;\": \"▀\",\n      \"&ulcorn;\": \"⌜\",\n      \"&ulcorner;\": \"⌜\",\n      \"&ulcrop;\": \"⌏\",\n      \"&ultri;\": \"◸\",\n      \"&umacr;\": \"ū\",\n      \"&uml\": \"¨\",\n      \"&uml;\": \"¨\",\n      \"&uogon;\": \"ų\",\n      \"&uopf;\": \"𝕦\",\n      \"&uparrow;\": \"↑\",\n      \"&updownarrow;\": \"↕\",\n      \"&upharpoonleft;\": \"↿\",\n      \"&upharpoonright;\": \"↾\",\n      \"&uplus;\": \"⊎\",\n      \"&upsi;\": \"υ\",\n      \"&upsih;\": \"ϒ\",\n      \"&upsilon;\": \"υ\",\n      \"&upuparrows;\": \"⇈\",\n      \"&urcorn;\": \"⌝\",\n      \"&urcorner;\": \"⌝\",\n      \"&urcrop;\": \"⌎\",\n      \"&uring;\": \"ů\",\n      \"&urtri;\": \"◹\",\n      \"&uscr;\": \"𝓊\",\n      \"&utdot;\": \"⋰\",\n      \"&utilde;\": \"ũ\",\n      \"&utri;\": \"▵\",\n      \"&utrif;\": \"▴\",\n      \"&uuarr;\": \"⇈\",\n      \"&uuml\": \"ü\",\n      \"&uuml;\": \"ü\",\n      \"&uwangle;\": \"⦧\",\n      \"&vArr;\": \"⇕\",\n      \"&vBar;\": \"⫨\",\n      \"&vBarv;\": \"⫩\",\n      \"&vDash;\": \"⊨\",\n      \"&vangrt;\": \"⦜\",\n      \"&varepsilon;\": \"ϵ\",\n      \"&varkappa;\": \"ϰ\",\n      \"&varnothing;\": \"∅\",\n      \"&varphi;\": \"ϕ\",\n      \"&varpi;\": \"ϖ\",\n      \"&varpropto;\": \"∝\",\n      \"&varr;\": \"↕\",\n      \"&varrho;\": \"ϱ\",\n      \"&varsigma;\": \"ς\",\n      \"&varsubsetneq;\": \"⊊︀\",\n      \"&varsubsetneqq;\": \"⫋︀\",\n      \"&varsupsetneq;\": \"⊋︀\",\n      \"&varsupsetneqq;\": \"⫌︀\",\n      \"&vartheta;\": \"ϑ\",\n      \"&vartriangleleft;\": \"⊲\",\n      \"&vartriangleright;\": \"⊳\",\n      \"&vcy;\": \"в\",\n      \"&vdash;\": \"⊢\",\n      \"&vee;\": \"∨\",\n      \"&veebar;\": \"⊻\",\n      \"&veeeq;\": \"≚\",\n      \"&vellip;\": \"⋮\",\n      \"&verbar;\": \"|\",\n      \"&vert;\": \"|\",\n      \"&vfr;\": \"𝔳\",\n      \"&vltri;\": \"⊲\",\n      \"&vnsub;\": \"⊂⃒\",\n      \"&vnsup;\": \"⊃⃒\",\n      \"&vopf;\": \"𝕧\",\n      \"&vprop;\": \"∝\",\n      \"&vrtri;\": \"⊳\",\n      \"&vscr;\": \"𝓋\",\n      \"&vsubnE;\": \"⫋︀\",\n      \"&vsubne;\": \"⊊︀\",\n      \"&vsupnE;\": \"⫌︀\",\n      \"&vsupne;\": \"⊋︀\",\n      \"&vzigzag;\": \"⦚\",\n      \"&wcirc;\": \"ŵ\",\n      \"&wedbar;\": \"⩟\",\n      \"&wedge;\": \"∧\",\n      \"&wedgeq;\": \"≙\",\n      \"&weierp;\": \"℘\",\n      \"&wfr;\": \"𝔴\",\n      \"&wopf;\": \"𝕨\",\n      \"&wp;\": \"℘\",\n      \"&wr;\": \"≀\",\n      \"&wreath;\": \"≀\",\n      \"&wscr;\": \"𝓌\",\n      \"&xcap;\": \"⋂\",\n      \"&xcirc;\": \"◯\",\n      \"&xcup;\": \"⋃\",\n      \"&xdtri;\": \"▽\",\n      \"&xfr;\": \"𝔵\",\n      \"&xhArr;\": \"⟺\",\n      \"&xharr;\": \"⟷\",\n      \"&xi;\": \"ξ\",\n      \"&xlArr;\": \"⟸\",\n      \"&xlarr;\": \"⟵\",\n      \"&xmap;\": \"⟼\",\n      \"&xnis;\": \"⋻\",\n      \"&xodot;\": \"⨀\",\n      \"&xopf;\": \"𝕩\",\n      \"&xoplus;\": \"⨁\",\n      \"&xotime;\": \"⨂\",\n      \"&xrArr;\": \"⟹\",\n      \"&xrarr;\": \"⟶\",\n      \"&xscr;\": \"𝓍\",\n      \"&xsqcup;\": \"⨆\",\n      \"&xuplus;\": \"⨄\",\n      \"&xutri;\": \"△\",\n      \"&xvee;\": \"⋁\",\n      \"&xwedge;\": \"⋀\",\n      \"&yacute\": \"ý\",\n      \"&yacute;\": \"ý\",\n      \"&yacy;\": \"я\",\n      \"&ycirc;\": \"ŷ\",\n      \"&ycy;\": \"ы\",\n      \"&yen\": \"¥\",\n      \"&yen;\": \"¥\",\n      \"&yfr;\": \"𝔶\",\n      \"&yicy;\": \"ї\",\n      \"&yopf;\": \"𝕪\",\n      \"&yscr;\": \"𝓎\",\n      \"&yucy;\": \"ю\",\n      \"&yuml\": \"ÿ\",\n      \"&yuml;\": \"ÿ\",\n      \"&zacute;\": \"ź\",\n      \"&zcaron;\": \"ž\",\n      \"&zcy;\": \"з\",\n      \"&zdot;\": \"ż\",\n      \"&zeetrf;\": \"ℨ\",\n      \"&zeta;\": \"ζ\",\n      \"&zfr;\": \"𝔷\",\n      \"&zhcy;\": \"ж\",\n      \"&zigrarr;\": \"⇝\",\n      \"&zopf;\": \"𝕫\",\n      \"&zscr;\": \"𝓏\",\n      \"&zwj;\": \"‍\",\n      \"&zwnj;\": \"‌\"\n    },\n    characters: {\n      \"Æ\": \"&AElig;\",\n      \"&\": \"&amp;\",\n      \"Á\": \"&Aacute;\",\n      \"Ă\": \"&Abreve;\",\n      \"Â\": \"&Acirc;\",\n      \"А\": \"&Acy;\",\n      \"𝔄\": \"&Afr;\",\n      \"À\": \"&Agrave;\",\n      \"Α\": \"&Alpha;\",\n      \"Ā\": \"&Amacr;\",\n      \"⩓\": \"&And;\",\n      \"Ą\": \"&Aogon;\",\n      \"𝔸\": \"&Aopf;\",\n      \"⁡\": \"&af;\",\n      \"Å\": \"&angst;\",\n      \"𝒜\": \"&Ascr;\",\n      \"≔\": \"&coloneq;\",\n      \"Ã\": \"&Atilde;\",\n      \"Ä\": \"&Auml;\",\n      \"∖\": \"&ssetmn;\",\n      \"⫧\": \"&Barv;\",\n      \"⌆\": \"&doublebarwedge;\",\n      \"Б\": \"&Bcy;\",\n      \"∵\": \"&because;\",\n      \"ℬ\": \"&bernou;\",\n      \"Β\": \"&Beta;\",\n      \"𝔅\": \"&Bfr;\",\n      \"𝔹\": \"&Bopf;\",\n      \"˘\": \"&breve;\",\n      \"≎\": \"&bump;\",\n      \"Ч\": \"&CHcy;\",\n      \"©\": \"&copy;\",\n      \"Ć\": \"&Cacute;\",\n      \"⋒\": \"&Cap;\",\n      \"ⅅ\": \"&DD;\",\n      \"ℭ\": \"&Cfr;\",\n      \"Č\": \"&Ccaron;\",\n      \"Ç\": \"&Ccedil;\",\n      \"Ĉ\": \"&Ccirc;\",\n      \"∰\": \"&Cconint;\",\n      \"Ċ\": \"&Cdot;\",\n      \"¸\": \"&cedil;\",\n      \"·\": \"&middot;\",\n      \"Χ\": \"&Chi;\",\n      \"⊙\": \"&odot;\",\n      \"⊖\": \"&ominus;\",\n      \"⊕\": \"&oplus;\",\n      \"⊗\": \"&otimes;\",\n      \"∲\": \"&cwconint;\",\n      \"”\": \"&rdquor;\",\n      \"’\": \"&rsquor;\",\n      \"∷\": \"&Proportion;\",\n      \"⩴\": \"&Colone;\",\n      \"≡\": \"&equiv;\",\n      \"∯\": \"&DoubleContourIntegral;\",\n      \"∮\": \"&oint;\",\n      \"ℂ\": \"&complexes;\",\n      \"∐\": \"&coprod;\",\n      \"∳\": \"&awconint;\",\n      \"⨯\": \"&Cross;\",\n      \"𝒞\": \"&Cscr;\",\n      \"⋓\": \"&Cup;\",\n      \"≍\": \"&asympeq;\",\n      \"⤑\": \"&DDotrahd;\",\n      \"Ђ\": \"&DJcy;\",\n      \"Ѕ\": \"&DScy;\",\n      \"Џ\": \"&DZcy;\",\n      \"‡\": \"&ddagger;\",\n      \"↡\": \"&Darr;\",\n      \"⫤\": \"&DoubleLeftTee;\",\n      \"Ď\": \"&Dcaron;\",\n      \"Д\": \"&Dcy;\",\n      \"∇\": \"&nabla;\",\n      \"Δ\": \"&Delta;\",\n      \"𝔇\": \"&Dfr;\",\n      \"´\": \"&acute;\",\n      \"˙\": \"&dot;\",\n      \"˝\": \"&dblac;\",\n      \"`\": \"&grave;\",\n      \"˜\": \"&tilde;\",\n      \"⋄\": \"&diamond;\",\n      \"ⅆ\": \"&dd;\",\n      \"𝔻\": \"&Dopf;\",\n      \"¨\": \"&uml;\",\n      \"⃜\": \"&DotDot;\",\n      \"≐\": \"&esdot;\",\n      \"⇓\": \"&dArr;\",\n      \"⇐\": \"&lArr;\",\n      \"⇔\": \"&iff;\",\n      \"⟸\": \"&xlArr;\",\n      \"⟺\": \"&xhArr;\",\n      \"⟹\": \"&xrArr;\",\n      \"⇒\": \"&rArr;\",\n      \"⊨\": \"&vDash;\",\n      \"⇑\": \"&uArr;\",\n      \"⇕\": \"&vArr;\",\n      \"∥\": \"&spar;\",\n      \"↓\": \"&downarrow;\",\n      \"⤓\": \"&DownArrowBar;\",\n      \"⇵\": \"&duarr;\",\n      \"̑\": \"&DownBreve;\",\n      \"⥐\": \"&DownLeftRightVector;\",\n      \"⥞\": \"&DownLeftTeeVector;\",\n      \"↽\": \"&lhard;\",\n      \"⥖\": \"&DownLeftVectorBar;\",\n      \"⥟\": \"&DownRightTeeVector;\",\n      \"⇁\": \"&rightharpoondown;\",\n      \"⥗\": \"&DownRightVectorBar;\",\n      \"⊤\": \"&top;\",\n      \"↧\": \"&mapstodown;\",\n      \"𝒟\": \"&Dscr;\",\n      \"Đ\": \"&Dstrok;\",\n      \"Ŋ\": \"&ENG;\",\n      \"Ð\": \"&ETH;\",\n      \"É\": \"&Eacute;\",\n      \"Ě\": \"&Ecaron;\",\n      \"Ê\": \"&Ecirc;\",\n      \"Э\": \"&Ecy;\",\n      \"Ė\": \"&Edot;\",\n      \"𝔈\": \"&Efr;\",\n      \"È\": \"&Egrave;\",\n      \"∈\": \"&isinv;\",\n      \"Ē\": \"&Emacr;\",\n      \"◻\": \"&EmptySmallSquare;\",\n      \"▫\": \"&EmptyVerySmallSquare;\",\n      \"Ę\": \"&Eogon;\",\n      \"𝔼\": \"&Eopf;\",\n      \"Ε\": \"&Epsilon;\",\n      \"⩵\": \"&Equal;\",\n      \"≂\": \"&esim;\",\n      \"⇌\": \"&rlhar;\",\n      \"ℰ\": \"&expectation;\",\n      \"⩳\": \"&Esim;\",\n      \"Η\": \"&Eta;\",\n      \"Ë\": \"&Euml;\",\n      \"∃\": \"&exist;\",\n      \"ⅇ\": \"&exponentiale;\",\n      \"Ф\": \"&Fcy;\",\n      \"𝔉\": \"&Ffr;\",\n      \"◼\": \"&FilledSmallSquare;\",\n      \"▪\": \"&squf;\",\n      \"𝔽\": \"&Fopf;\",\n      \"∀\": \"&forall;\",\n      \"ℱ\": \"&Fscr;\",\n      \"Ѓ\": \"&GJcy;\",\n      \">\": \"&gt;\",\n      \"Γ\": \"&Gamma;\",\n      \"Ϝ\": \"&Gammad;\",\n      \"Ğ\": \"&Gbreve;\",\n      \"Ģ\": \"&Gcedil;\",\n      \"Ĝ\": \"&Gcirc;\",\n      \"Г\": \"&Gcy;\",\n      \"Ġ\": \"&Gdot;\",\n      \"𝔊\": \"&Gfr;\",\n      \"⋙\": \"&ggg;\",\n      \"𝔾\": \"&Gopf;\",\n      \"≥\": \"&geq;\",\n      \"⋛\": \"&gtreqless;\",\n      \"≧\": \"&geqq;\",\n      \"⪢\": \"&GreaterGreater;\",\n      \"≷\": \"&gtrless;\",\n      \"⩾\": \"&ges;\",\n      \"≳\": \"&gtrsim;\",\n      \"𝒢\": \"&Gscr;\",\n      \"≫\": \"&gg;\",\n      \"Ъ\": \"&HARDcy;\",\n      \"ˇ\": \"&caron;\",\n      \"^\": \"&Hat;\",\n      \"Ĥ\": \"&Hcirc;\",\n      \"ℌ\": \"&Poincareplane;\",\n      \"ℋ\": \"&hamilt;\",\n      \"ℍ\": \"&quaternions;\",\n      \"─\": \"&boxh;\",\n      \"Ħ\": \"&Hstrok;\",\n      \"≏\": \"&bumpeq;\",\n      \"Е\": \"&IEcy;\",\n      \"IJ\": \"&IJlig;\",\n      \"Ё\": \"&IOcy;\",\n      \"Í\": \"&Iacute;\",\n      \"Î\": \"&Icirc;\",\n      \"И\": \"&Icy;\",\n      \"İ\": \"&Idot;\",\n      \"ℑ\": \"&imagpart;\",\n      \"Ì\": \"&Igrave;\",\n      \"Ī\": \"&Imacr;\",\n      \"ⅈ\": \"&ii;\",\n      \"∬\": \"&Int;\",\n      \"∫\": \"&int;\",\n      \"⋂\": \"&xcap;\",\n      \"⁣\": \"&ic;\",\n      \"⁢\": \"&it;\",\n      \"Į\": \"&Iogon;\",\n      \"𝕀\": \"&Iopf;\",\n      \"Ι\": \"&Iota;\",\n      \"ℐ\": \"&imagline;\",\n      \"Ĩ\": \"&Itilde;\",\n      \"І\": \"&Iukcy;\",\n      \"Ï\": \"&Iuml;\",\n      \"Ĵ\": \"&Jcirc;\",\n      \"Й\": \"&Jcy;\",\n      \"𝔍\": \"&Jfr;\",\n      \"𝕁\": \"&Jopf;\",\n      \"𝒥\": \"&Jscr;\",\n      \"Ј\": \"&Jsercy;\",\n      \"Є\": \"&Jukcy;\",\n      \"Х\": \"&KHcy;\",\n      \"Ќ\": \"&KJcy;\",\n      \"Κ\": \"&Kappa;\",\n      \"Ķ\": \"&Kcedil;\",\n      \"К\": \"&Kcy;\",\n      \"𝔎\": \"&Kfr;\",\n      \"𝕂\": \"&Kopf;\",\n      \"𝒦\": \"&Kscr;\",\n      \"Љ\": \"&LJcy;\",\n      \"<\": \"&lt;\",\n      \"Ĺ\": \"&Lacute;\",\n      \"Λ\": \"&Lambda;\",\n      \"⟪\": \"&Lang;\",\n      \"ℒ\": \"&lagran;\",\n      \"↞\": \"&twoheadleftarrow;\",\n      \"Ľ\": \"&Lcaron;\",\n      \"Ļ\": \"&Lcedil;\",\n      \"Л\": \"&Lcy;\",\n      \"⟨\": \"&langle;\",\n      \"←\": \"&slarr;\",\n      \"⇤\": \"&larrb;\",\n      \"⇆\": \"&lrarr;\",\n      \"⌈\": \"&lceil;\",\n      \"⟦\": \"&lobrk;\",\n      \"⥡\": \"&LeftDownTeeVector;\",\n      \"⇃\": \"&downharpoonleft;\",\n      \"⥙\": \"&LeftDownVectorBar;\",\n      \"⌊\": \"&lfloor;\",\n      \"↔\": \"&leftrightarrow;\",\n      \"⥎\": \"&LeftRightVector;\",\n      \"⊣\": \"&dashv;\",\n      \"↤\": \"&mapstoleft;\",\n      \"⥚\": \"&LeftTeeVector;\",\n      \"⊲\": \"&vltri;\",\n      \"⧏\": \"&LeftTriangleBar;\",\n      \"⊴\": \"&trianglelefteq;\",\n      \"⥑\": \"&LeftUpDownVector;\",\n      \"⥠\": \"&LeftUpTeeVector;\",\n      \"↿\": \"&upharpoonleft;\",\n      \"⥘\": \"&LeftUpVectorBar;\",\n      \"↼\": \"&lharu;\",\n      \"⥒\": \"&LeftVectorBar;\",\n      \"⋚\": \"&lesseqgtr;\",\n      \"≦\": \"&leqq;\",\n      \"≶\": \"&lg;\",\n      \"⪡\": \"&LessLess;\",\n      \"⩽\": \"&les;\",\n      \"≲\": \"&lsim;\",\n      \"𝔏\": \"&Lfr;\",\n      \"⋘\": \"&Ll;\",\n      \"⇚\": \"&lAarr;\",\n      \"Ŀ\": \"&Lmidot;\",\n      \"⟵\": \"&xlarr;\",\n      \"⟷\": \"&xharr;\",\n      \"⟶\": \"&xrarr;\",\n      \"𝕃\": \"&Lopf;\",\n      \"↙\": \"&swarrow;\",\n      \"↘\": \"&searrow;\",\n      \"↰\": \"&lsh;\",\n      \"Ł\": \"&Lstrok;\",\n      \"≪\": \"&ll;\",\n      \"⤅\": \"&Map;\",\n      \"М\": \"&Mcy;\",\n      \" \": \"&MediumSpace;\",\n      \"ℳ\": \"&phmmat;\",\n      \"𝔐\": \"&Mfr;\",\n      \"∓\": \"&mp;\",\n      \"𝕄\": \"&Mopf;\",\n      \"Μ\": \"&Mu;\",\n      \"Њ\": \"&NJcy;\",\n      \"Ń\": \"&Nacute;\",\n      \"Ň\": \"&Ncaron;\",\n      \"Ņ\": \"&Ncedil;\",\n      \"Н\": \"&Ncy;\",\n      \"​\": \"&ZeroWidthSpace;\",\n      \"\\n\": \"&NewLine;\",\n      \"𝔑\": \"&Nfr;\",\n      \"⁠\": \"&NoBreak;\",\n      \" \": \"&nbsp;\",\n      \"ℕ\": \"&naturals;\",\n      \"⫬\": \"&Not;\",\n      \"≢\": \"&nequiv;\",\n      \"≭\": \"&NotCupCap;\",\n      \"∦\": \"&nspar;\",\n      \"∉\": \"&notinva;\",\n      \"≠\": \"&ne;\",\n      \"≂̸\": \"&nesim;\",\n      \"∄\": \"&nexists;\",\n      \"≯\": \"&ngtr;\",\n      \"≱\": \"&ngeq;\",\n      \"≧̸\": \"&ngeqq;\",\n      \"≫̸\": \"&nGtv;\",\n      \"≹\": \"&ntgl;\",\n      \"⩾̸\": \"&nges;\",\n      \"≵\": \"&ngsim;\",\n      \"≎̸\": \"&nbump;\",\n      \"≏̸\": \"&nbumpe;\",\n      \"⋪\": \"&ntriangleleft;\",\n      \"⧏̸\": \"&NotLeftTriangleBar;\",\n      \"⋬\": \"&ntrianglelefteq;\",\n      \"≮\": \"&nlt;\",\n      \"≰\": \"&nleq;\",\n      \"≸\": \"&ntlg;\",\n      \"≪̸\": \"&nLtv;\",\n      \"⩽̸\": \"&nles;\",\n      \"≴\": \"&nlsim;\",\n      \"⪢̸\": \"&NotNestedGreaterGreater;\",\n      \"⪡̸\": \"&NotNestedLessLess;\",\n      \"⊀\": \"&nprec;\",\n      \"⪯̸\": \"&npreceq;\",\n      \"⋠\": \"&nprcue;\",\n      \"∌\": \"&notniva;\",\n      \"⋫\": \"&ntriangleright;\",\n      \"⧐̸\": \"&NotRightTriangleBar;\",\n      \"⋭\": \"&ntrianglerighteq;\",\n      \"⊏̸\": \"&NotSquareSubset;\",\n      \"⋢\": \"&nsqsube;\",\n      \"⊐̸\": \"&NotSquareSuperset;\",\n      \"⋣\": \"&nsqsupe;\",\n      \"⊂⃒\": \"&vnsub;\",\n      \"⊈\": \"&nsubseteq;\",\n      \"⊁\": \"&nsucc;\",\n      \"⪰̸\": \"&nsucceq;\",\n      \"⋡\": \"&nsccue;\",\n      \"≿̸\": \"&NotSucceedsTilde;\",\n      \"⊃⃒\": \"&vnsup;\",\n      \"⊉\": \"&nsupseteq;\",\n      \"≁\": \"&nsim;\",\n      \"≄\": \"&nsimeq;\",\n      \"≇\": \"&ncong;\",\n      \"≉\": \"&napprox;\",\n      \"∤\": \"&nsmid;\",\n      \"𝒩\": \"&Nscr;\",\n      \"Ñ\": \"&Ntilde;\",\n      \"Ν\": \"&Nu;\",\n      \"Œ\": \"&OElig;\",\n      \"Ó\": \"&Oacute;\",\n      \"Ô\": \"&Ocirc;\",\n      \"О\": \"&Ocy;\",\n      \"Ő\": \"&Odblac;\",\n      \"𝔒\": \"&Ofr;\",\n      \"Ò\": \"&Ograve;\",\n      \"Ō\": \"&Omacr;\",\n      \"Ω\": \"&ohm;\",\n      \"Ο\": \"&Omicron;\",\n      \"𝕆\": \"&Oopf;\",\n      \"“\": \"&ldquo;\",\n      \"‘\": \"&lsquo;\",\n      \"⩔\": \"&Or;\",\n      \"𝒪\": \"&Oscr;\",\n      \"Ø\": \"&Oslash;\",\n      \"Õ\": \"&Otilde;\",\n      \"⨷\": \"&Otimes;\",\n      \"Ö\": \"&Ouml;\",\n      \"‾\": \"&oline;\",\n      \"⏞\": \"&OverBrace;\",\n      \"⎴\": \"&tbrk;\",\n      \"⏜\": \"&OverParenthesis;\",\n      \"∂\": \"&part;\",\n      \"П\": \"&Pcy;\",\n      \"𝔓\": \"&Pfr;\",\n      \"Φ\": \"&Phi;\",\n      \"Π\": \"&Pi;\",\n      \"±\": \"&pm;\",\n      \"ℙ\": \"&primes;\",\n      \"⪻\": \"&Pr;\",\n      \"≺\": \"&prec;\",\n      \"⪯\": \"&preceq;\",\n      \"≼\": \"&preccurlyeq;\",\n      \"≾\": \"&prsim;\",\n      \"″\": \"&Prime;\",\n      \"∏\": \"&prod;\",\n      \"∝\": \"&vprop;\",\n      \"𝒫\": \"&Pscr;\",\n      \"Ψ\": \"&Psi;\",\n      '\"': \"&quot;\",\n      \"𝔔\": \"&Qfr;\",\n      \"ℚ\": \"&rationals;\",\n      \"𝒬\": \"&Qscr;\",\n      \"⤐\": \"&drbkarow;\",\n      \"®\": \"&reg;\",\n      \"Ŕ\": \"&Racute;\",\n      \"⟫\": \"&Rang;\",\n      \"↠\": \"&twoheadrightarrow;\",\n      \"⤖\": \"&Rarrtl;\",\n      \"Ř\": \"&Rcaron;\",\n      \"Ŗ\": \"&Rcedil;\",\n      \"Р\": \"&Rcy;\",\n      \"ℜ\": \"&realpart;\",\n      \"∋\": \"&niv;\",\n      \"⇋\": \"&lrhar;\",\n      \"⥯\": \"&duhar;\",\n      \"Ρ\": \"&Rho;\",\n      \"⟩\": \"&rangle;\",\n      \"→\": \"&srarr;\",\n      \"⇥\": \"&rarrb;\",\n      \"⇄\": \"&rlarr;\",\n      \"⌉\": \"&rceil;\",\n      \"⟧\": \"&robrk;\",\n      \"⥝\": \"&RightDownTeeVector;\",\n      \"⇂\": \"&downharpoonright;\",\n      \"⥕\": \"&RightDownVectorBar;\",\n      \"⌋\": \"&rfloor;\",\n      \"⊢\": \"&vdash;\",\n      \"↦\": \"&mapsto;\",\n      \"⥛\": \"&RightTeeVector;\",\n      \"⊳\": \"&vrtri;\",\n      \"⧐\": \"&RightTriangleBar;\",\n      \"⊵\": \"&trianglerighteq;\",\n      \"⥏\": \"&RightUpDownVector;\",\n      \"⥜\": \"&RightUpTeeVector;\",\n      \"↾\": \"&upharpoonright;\",\n      \"⥔\": \"&RightUpVectorBar;\",\n      \"⇀\": \"&rightharpoonup;\",\n      \"⥓\": \"&RightVectorBar;\",\n      \"ℝ\": \"&reals;\",\n      \"⥰\": \"&RoundImplies;\",\n      \"⇛\": \"&rAarr;\",\n      \"ℛ\": \"&realine;\",\n      \"↱\": \"&rsh;\",\n      \"⧴\": \"&RuleDelayed;\",\n      \"Щ\": \"&SHCHcy;\",\n      \"Ш\": \"&SHcy;\",\n      \"Ь\": \"&SOFTcy;\",\n      \"Ś\": \"&Sacute;\",\n      \"⪼\": \"&Sc;\",\n      \"Š\": \"&Scaron;\",\n      \"Ş\": \"&Scedil;\",\n      \"Ŝ\": \"&Scirc;\",\n      \"С\": \"&Scy;\",\n      \"𝔖\": \"&Sfr;\",\n      \"↑\": \"&uparrow;\",\n      \"Σ\": \"&Sigma;\",\n      \"∘\": \"&compfn;\",\n      \"𝕊\": \"&Sopf;\",\n      \"√\": \"&radic;\",\n      \"□\": \"&square;\",\n      \"⊓\": \"&sqcap;\",\n      \"⊏\": \"&sqsubset;\",\n      \"⊑\": \"&sqsubseteq;\",\n      \"⊐\": \"&sqsupset;\",\n      \"⊒\": \"&sqsupseteq;\",\n      \"⊔\": \"&sqcup;\",\n      \"𝒮\": \"&Sscr;\",\n      \"⋆\": \"&sstarf;\",\n      \"⋐\": \"&Subset;\",\n      \"⊆\": \"&subseteq;\",\n      \"≻\": \"&succ;\",\n      \"⪰\": \"&succeq;\",\n      \"≽\": \"&succcurlyeq;\",\n      \"≿\": \"&succsim;\",\n      \"∑\": \"&sum;\",\n      \"⋑\": \"&Supset;\",\n      \"⊃\": \"&supset;\",\n      \"⊇\": \"&supseteq;\",\n      \"Þ\": \"&THORN;\",\n      \"™\": \"&trade;\",\n      \"Ћ\": \"&TSHcy;\",\n      \"Ц\": \"&TScy;\",\n      \"\\t\": \"&Tab;\",\n      \"Τ\": \"&Tau;\",\n      \"Ť\": \"&Tcaron;\",\n      \"Ţ\": \"&Tcedil;\",\n      \"Т\": \"&Tcy;\",\n      \"𝔗\": \"&Tfr;\",\n      \"∴\": \"&therefore;\",\n      \"Θ\": \"&Theta;\",\n      \"  \": \"&ThickSpace;\",\n      \" \": \"&thinsp;\",\n      \"∼\": \"&thksim;\",\n      \"≃\": \"&simeq;\",\n      \"≅\": \"&cong;\",\n      \"≈\": \"&thkap;\",\n      \"𝕋\": \"&Topf;\",\n      \"⃛\": \"&tdot;\",\n      \"𝒯\": \"&Tscr;\",\n      \"Ŧ\": \"&Tstrok;\",\n      \"Ú\": \"&Uacute;\",\n      \"↟\": \"&Uarr;\",\n      \"⥉\": \"&Uarrocir;\",\n      \"Ў\": \"&Ubrcy;\",\n      \"Ŭ\": \"&Ubreve;\",\n      \"Û\": \"&Ucirc;\",\n      \"У\": \"&Ucy;\",\n      \"Ű\": \"&Udblac;\",\n      \"𝔘\": \"&Ufr;\",\n      \"Ù\": \"&Ugrave;\",\n      \"Ū\": \"&Umacr;\",\n      _: \"&lowbar;\",\n      \"⏟\": \"&UnderBrace;\",\n      \"⎵\": \"&bbrk;\",\n      \"⏝\": \"&UnderParenthesis;\",\n      \"⋃\": \"&xcup;\",\n      \"⊎\": \"&uplus;\",\n      \"Ų\": \"&Uogon;\",\n      \"𝕌\": \"&Uopf;\",\n      \"⤒\": \"&UpArrowBar;\",\n      \"⇅\": \"&udarr;\",\n      \"↕\": \"&varr;\",\n      \"⥮\": \"&udhar;\",\n      \"⊥\": \"&perp;\",\n      \"↥\": \"&mapstoup;\",\n      \"↖\": \"&nwarrow;\",\n      \"↗\": \"&nearrow;\",\n      \"ϒ\": \"&upsih;\",\n      \"Υ\": \"&Upsilon;\",\n      \"Ů\": \"&Uring;\",\n      \"𝒰\": \"&Uscr;\",\n      \"Ũ\": \"&Utilde;\",\n      \"Ü\": \"&Uuml;\",\n      \"⊫\": \"&VDash;\",\n      \"⫫\": \"&Vbar;\",\n      \"В\": \"&Vcy;\",\n      \"⊩\": \"&Vdash;\",\n      \"⫦\": \"&Vdashl;\",\n      \"⋁\": \"&xvee;\",\n      \"‖\": \"&Vert;\",\n      \"∣\": \"&smid;\",\n      \"|\": \"&vert;\",\n      \"❘\": \"&VerticalSeparator;\",\n      \"≀\": \"&wreath;\",\n      \" \": \"&hairsp;\",\n      \"𝔙\": \"&Vfr;\",\n      \"𝕍\": \"&Vopf;\",\n      \"𝒱\": \"&Vscr;\",\n      \"⊪\": \"&Vvdash;\",\n      \"Ŵ\": \"&Wcirc;\",\n      \"⋀\": \"&xwedge;\",\n      \"𝔚\": \"&Wfr;\",\n      \"𝕎\": \"&Wopf;\",\n      \"𝒲\": \"&Wscr;\",\n      \"𝔛\": \"&Xfr;\",\n      \"Ξ\": \"&Xi;\",\n      \"𝕏\": \"&Xopf;\",\n      \"𝒳\": \"&Xscr;\",\n      \"Я\": \"&YAcy;\",\n      \"Ї\": \"&YIcy;\",\n      \"Ю\": \"&YUcy;\",\n      \"Ý\": \"&Yacute;\",\n      \"Ŷ\": \"&Ycirc;\",\n      \"Ы\": \"&Ycy;\",\n      \"𝔜\": \"&Yfr;\",\n      \"𝕐\": \"&Yopf;\",\n      \"𝒴\": \"&Yscr;\",\n      \"Ÿ\": \"&Yuml;\",\n      \"Ж\": \"&ZHcy;\",\n      \"Ź\": \"&Zacute;\",\n      \"Ž\": \"&Zcaron;\",\n      \"З\": \"&Zcy;\",\n      \"Ż\": \"&Zdot;\",\n      \"Ζ\": \"&Zeta;\",\n      \"ℨ\": \"&zeetrf;\",\n      \"ℤ\": \"&integers;\",\n      \"𝒵\": \"&Zscr;\",\n      \"á\": \"&aacute;\",\n      \"ă\": \"&abreve;\",\n      \"∾\": \"&mstpos;\",\n      \"∾̳\": \"&acE;\",\n      \"∿\": \"&acd;\",\n      \"â\": \"&acirc;\",\n      \"а\": \"&acy;\",\n      \"æ\": \"&aelig;\",\n      \"𝔞\": \"&afr;\",\n      \"à\": \"&agrave;\",\n      \"ℵ\": \"&aleph;\",\n      \"α\": \"&alpha;\",\n      \"ā\": \"&amacr;\",\n      \"⨿\": \"&amalg;\",\n      \"∧\": \"&wedge;\",\n      \"⩕\": \"&andand;\",\n      \"⩜\": \"&andd;\",\n      \"⩘\": \"&andslope;\",\n      \"⩚\": \"&andv;\",\n      \"∠\": \"&angle;\",\n      \"⦤\": \"&ange;\",\n      \"∡\": \"&measuredangle;\",\n      \"⦨\": \"&angmsdaa;\",\n      \"⦩\": \"&angmsdab;\",\n      \"⦪\": \"&angmsdac;\",\n      \"⦫\": \"&angmsdad;\",\n      \"⦬\": \"&angmsdae;\",\n      \"⦭\": \"&angmsdaf;\",\n      \"⦮\": \"&angmsdag;\",\n      \"⦯\": \"&angmsdah;\",\n      \"∟\": \"&angrt;\",\n      \"⊾\": \"&angrtvb;\",\n      \"⦝\": \"&angrtvbd;\",\n      \"∢\": \"&angsph;\",\n      \"⍼\": \"&angzarr;\",\n      \"ą\": \"&aogon;\",\n      \"𝕒\": \"&aopf;\",\n      \"⩰\": \"&apE;\",\n      \"⩯\": \"&apacir;\",\n      \"≊\": \"&approxeq;\",\n      \"≋\": \"&apid;\",\n      \"'\": \"&apos;\",\n      \"å\": \"&aring;\",\n      \"𝒶\": \"&ascr;\",\n      \"*\": \"&midast;\",\n      \"ã\": \"&atilde;\",\n      \"ä\": \"&auml;\",\n      \"⨑\": \"&awint;\",\n      \"⫭\": \"&bNot;\",\n      \"≌\": \"&bcong;\",\n      \"϶\": \"&bepsi;\",\n      \"‵\": \"&bprime;\",\n      \"∽\": \"&bsim;\",\n      \"⋍\": \"&bsime;\",\n      \"⊽\": \"&barvee;\",\n      \"⌅\": \"&barwedge;\",\n      \"⎶\": \"&bbrktbrk;\",\n      \"б\": \"&bcy;\",\n      \"„\": \"&ldquor;\",\n      \"⦰\": \"&bemptyv;\",\n      \"β\": \"&beta;\",\n      \"ℶ\": \"&beth;\",\n      \"≬\": \"&twixt;\",\n      \"𝔟\": \"&bfr;\",\n      \"◯\": \"&xcirc;\",\n      \"⨀\": \"&xodot;\",\n      \"⨁\": \"&xoplus;\",\n      \"⨂\": \"&xotime;\",\n      \"⨆\": \"&xsqcup;\",\n      \"★\": \"&starf;\",\n      \"▽\": \"&xdtri;\",\n      \"△\": \"&xutri;\",\n      \"⨄\": \"&xuplus;\",\n      \"⤍\": \"&rbarr;\",\n      \"⧫\": \"&lozf;\",\n      \"▴\": \"&utrif;\",\n      \"▾\": \"&dtrif;\",\n      \"◂\": \"&ltrif;\",\n      \"▸\": \"&rtrif;\",\n      \"␣\": \"&blank;\",\n      \"▒\": \"&blk12;\",\n      \"░\": \"&blk14;\",\n      \"▓\": \"&blk34;\",\n      \"█\": \"&block;\",\n      \"=⃥\": \"&bne;\",\n      \"≡⃥\": \"&bnequiv;\",\n      \"⌐\": \"&bnot;\",\n      \"𝕓\": \"&bopf;\",\n      \"⋈\": \"&bowtie;\",\n      \"╗\": \"&boxDL;\",\n      \"╔\": \"&boxDR;\",\n      \"╖\": \"&boxDl;\",\n      \"╓\": \"&boxDr;\",\n      \"═\": \"&boxH;\",\n      \"╦\": \"&boxHD;\",\n      \"╩\": \"&boxHU;\",\n      \"╤\": \"&boxHd;\",\n      \"╧\": \"&boxHu;\",\n      \"╝\": \"&boxUL;\",\n      \"╚\": \"&boxUR;\",\n      \"╜\": \"&boxUl;\",\n      \"╙\": \"&boxUr;\",\n      \"║\": \"&boxV;\",\n      \"╬\": \"&boxVH;\",\n      \"╣\": \"&boxVL;\",\n      \"╠\": \"&boxVR;\",\n      \"╫\": \"&boxVh;\",\n      \"╢\": \"&boxVl;\",\n      \"╟\": \"&boxVr;\",\n      \"⧉\": \"&boxbox;\",\n      \"╕\": \"&boxdL;\",\n      \"╒\": \"&boxdR;\",\n      \"┐\": \"&boxdl;\",\n      \"┌\": \"&boxdr;\",\n      \"╥\": \"&boxhD;\",\n      \"╨\": \"&boxhU;\",\n      \"┬\": \"&boxhd;\",\n      \"┴\": \"&boxhu;\",\n      \"⊟\": \"&minusb;\",\n      \"⊞\": \"&plusb;\",\n      \"⊠\": \"&timesb;\",\n      \"╛\": \"&boxuL;\",\n      \"╘\": \"&boxuR;\",\n      \"┘\": \"&boxul;\",\n      \"└\": \"&boxur;\",\n      \"│\": \"&boxv;\",\n      \"╪\": \"&boxvH;\",\n      \"╡\": \"&boxvL;\",\n      \"╞\": \"&boxvR;\",\n      \"┼\": \"&boxvh;\",\n      \"┤\": \"&boxvl;\",\n      \"├\": \"&boxvr;\",\n      \"¦\": \"&brvbar;\",\n      \"𝒷\": \"&bscr;\",\n      \"⁏\": \"&bsemi;\",\n      \"\\\\\": \"&bsol;\",\n      \"⧅\": \"&bsolb;\",\n      \"⟈\": \"&bsolhsub;\",\n      \"•\": \"&bullet;\",\n      \"⪮\": \"&bumpE;\",\n      \"ć\": \"&cacute;\",\n      \"∩\": \"&cap;\",\n      \"⩄\": \"&capand;\",\n      \"⩉\": \"&capbrcup;\",\n      \"⩋\": \"&capcap;\",\n      \"⩇\": \"&capcup;\",\n      \"⩀\": \"&capdot;\",\n      \"∩︀\": \"&caps;\",\n      \"⁁\": \"&caret;\",\n      \"⩍\": \"&ccaps;\",\n      \"č\": \"&ccaron;\",\n      \"ç\": \"&ccedil;\",\n      \"ĉ\": \"&ccirc;\",\n      \"⩌\": \"&ccups;\",\n      \"⩐\": \"&ccupssm;\",\n      \"ċ\": \"&cdot;\",\n      \"⦲\": \"&cemptyv;\",\n      \"¢\": \"&cent;\",\n      \"𝔠\": \"&cfr;\",\n      \"ч\": \"&chcy;\",\n      \"✓\": \"&checkmark;\",\n      \"χ\": \"&chi;\",\n      \"○\": \"&cir;\",\n      \"⧃\": \"&cirE;\",\n      \"ˆ\": \"&circ;\",\n      \"≗\": \"&cire;\",\n      \"↺\": \"&olarr;\",\n      \"↻\": \"&orarr;\",\n      \"Ⓢ\": \"&oS;\",\n      \"⊛\": \"&oast;\",\n      \"⊚\": \"&ocir;\",\n      \"⊝\": \"&odash;\",\n      \"⨐\": \"&cirfnint;\",\n      \"⫯\": \"&cirmid;\",\n      \"⧂\": \"&cirscir;\",\n      \"♣\": \"&clubsuit;\",\n      \":\": \"&colon;\",\n      \",\": \"&comma;\",\n      \"@\": \"&commat;\",\n      \"∁\": \"&complement;\",\n      \"⩭\": \"&congdot;\",\n      \"𝕔\": \"&copf;\",\n      \"℗\": \"&copysr;\",\n      \"↵\": \"&crarr;\",\n      \"✗\": \"&cross;\",\n      \"𝒸\": \"&cscr;\",\n      \"⫏\": \"&csub;\",\n      \"⫑\": \"&csube;\",\n      \"⫐\": \"&csup;\",\n      \"⫒\": \"&csupe;\",\n      \"⋯\": \"&ctdot;\",\n      \"⤸\": \"&cudarrl;\",\n      \"⤵\": \"&cudarrr;\",\n      \"⋞\": \"&curlyeqprec;\",\n      \"⋟\": \"&curlyeqsucc;\",\n      \"↶\": \"&curvearrowleft;\",\n      \"⤽\": \"&cularrp;\",\n      \"∪\": \"&cup;\",\n      \"⩈\": \"&cupbrcap;\",\n      \"⩆\": \"&cupcap;\",\n      \"⩊\": \"&cupcup;\",\n      \"⊍\": \"&cupdot;\",\n      \"⩅\": \"&cupor;\",\n      \"∪︀\": \"&cups;\",\n      \"↷\": \"&curvearrowright;\",\n      \"⤼\": \"&curarrm;\",\n      \"⋎\": \"&cuvee;\",\n      \"⋏\": \"&cuwed;\",\n      \"¤\": \"&curren;\",\n      \"∱\": \"&cwint;\",\n      \"⌭\": \"&cylcty;\",\n      \"⥥\": \"&dHar;\",\n      \"†\": \"&dagger;\",\n      \"ℸ\": \"&daleth;\",\n      \"‐\": \"&hyphen;\",\n      \"⤏\": \"&rBarr;\",\n      \"ď\": \"&dcaron;\",\n      \"д\": \"&dcy;\",\n      \"⇊\": \"&downdownarrows;\",\n      \"⩷\": \"&eDDot;\",\n      \"°\": \"&deg;\",\n      \"δ\": \"&delta;\",\n      \"⦱\": \"&demptyv;\",\n      \"⥿\": \"&dfisht;\",\n      \"𝔡\": \"&dfr;\",\n      \"♦\": \"&diams;\",\n      \"ϝ\": \"&gammad;\",\n      \"⋲\": \"&disin;\",\n      \"÷\": \"&divide;\",\n      \"⋇\": \"&divonx;\",\n      \"ђ\": \"&djcy;\",\n      \"⌞\": \"&llcorner;\",\n      \"⌍\": \"&dlcrop;\",\n      $: \"&dollar;\",\n      \"𝕕\": \"&dopf;\",\n      \"≑\": \"&eDot;\",\n      \"∸\": \"&minusd;\",\n      \"∔\": \"&plusdo;\",\n      \"⊡\": \"&sdotb;\",\n      \"⌟\": \"&lrcorner;\",\n      \"⌌\": \"&drcrop;\",\n      \"𝒹\": \"&dscr;\",\n      \"ѕ\": \"&dscy;\",\n      \"⧶\": \"&dsol;\",\n      \"đ\": \"&dstrok;\",\n      \"⋱\": \"&dtdot;\",\n      \"▿\": \"&triangledown;\",\n      \"⦦\": \"&dwangle;\",\n      \"џ\": \"&dzcy;\",\n      \"⟿\": \"&dzigrarr;\",\n      \"é\": \"&eacute;\",\n      \"⩮\": \"&easter;\",\n      \"ě\": \"&ecaron;\",\n      \"≖\": \"&eqcirc;\",\n      \"ê\": \"&ecirc;\",\n      \"≕\": \"&eqcolon;\",\n      \"э\": \"&ecy;\",\n      \"ė\": \"&edot;\",\n      \"≒\": \"&fallingdotseq;\",\n      \"𝔢\": \"&efr;\",\n      \"⪚\": \"&eg;\",\n      \"è\": \"&egrave;\",\n      \"⪖\": \"&eqslantgtr;\",\n      \"⪘\": \"&egsdot;\",\n      \"⪙\": \"&el;\",\n      \"⏧\": \"&elinters;\",\n      \"ℓ\": \"&ell;\",\n      \"⪕\": \"&eqslantless;\",\n      \"⪗\": \"&elsdot;\",\n      \"ē\": \"&emacr;\",\n      \"∅\": \"&varnothing;\",\n      \" \": \"&emsp13;\",\n      \" \": \"&emsp14;\",\n      \" \": \"&emsp;\",\n      \"ŋ\": \"&eng;\",\n      \" \": \"&ensp;\",\n      \"ę\": \"&eogon;\",\n      \"𝕖\": \"&eopf;\",\n      \"⋕\": \"&epar;\",\n      \"⧣\": \"&eparsl;\",\n      \"⩱\": \"&eplus;\",\n      \"ε\": \"&epsilon;\",\n      \"ϵ\": \"&varepsilon;\",\n      \"=\": \"&equals;\",\n      \"≟\": \"&questeq;\",\n      \"⩸\": \"&equivDD;\",\n      \"⧥\": \"&eqvparsl;\",\n      \"≓\": \"&risingdotseq;\",\n      \"⥱\": \"&erarr;\",\n      \"ℯ\": \"&escr;\",\n      \"η\": \"&eta;\",\n      \"ð\": \"&eth;\",\n      \"ë\": \"&euml;\",\n      \"€\": \"&euro;\",\n      \"!\": \"&excl;\",\n      \"ф\": \"&fcy;\",\n      \"♀\": \"&female;\",\n      \"ffi\": \"&ffilig;\",\n      \"ff\": \"&fflig;\",\n      \"ffl\": \"&ffllig;\",\n      \"𝔣\": \"&ffr;\",\n      \"fi\": \"&filig;\",\n      fj: \"&fjlig;\",\n      \"♭\": \"&flat;\",\n      \"fl\": \"&fllig;\",\n      \"▱\": \"&fltns;\",\n      \"ƒ\": \"&fnof;\",\n      \"𝕗\": \"&fopf;\",\n      \"⋔\": \"&pitchfork;\",\n      \"⫙\": \"&forkv;\",\n      \"⨍\": \"&fpartint;\",\n      \"½\": \"&half;\",\n      \"⅓\": \"&frac13;\",\n      \"¼\": \"&frac14;\",\n      \"⅕\": \"&frac15;\",\n      \"⅙\": \"&frac16;\",\n      \"⅛\": \"&frac18;\",\n      \"⅔\": \"&frac23;\",\n      \"⅖\": \"&frac25;\",\n      \"¾\": \"&frac34;\",\n      \"⅗\": \"&frac35;\",\n      \"⅜\": \"&frac38;\",\n      \"⅘\": \"&frac45;\",\n      \"⅚\": \"&frac56;\",\n      \"⅝\": \"&frac58;\",\n      \"⅞\": \"&frac78;\",\n      \"⁄\": \"&frasl;\",\n      \"⌢\": \"&sfrown;\",\n      \"𝒻\": \"&fscr;\",\n      \"⪌\": \"&gtreqqless;\",\n      \"ǵ\": \"&gacute;\",\n      \"γ\": \"&gamma;\",\n      \"⪆\": \"&gtrapprox;\",\n      \"ğ\": \"&gbreve;\",\n      \"ĝ\": \"&gcirc;\",\n      \"г\": \"&gcy;\",\n      \"ġ\": \"&gdot;\",\n      \"⪩\": \"&gescc;\",\n      \"⪀\": \"&gesdot;\",\n      \"⪂\": \"&gesdoto;\",\n      \"⪄\": \"&gesdotol;\",\n      \"⋛︀\": \"&gesl;\",\n      \"⪔\": \"&gesles;\",\n      \"𝔤\": \"&gfr;\",\n      \"ℷ\": \"&gimel;\",\n      \"ѓ\": \"&gjcy;\",\n      \"⪒\": \"&glE;\",\n      \"⪥\": \"&gla;\",\n      \"⪤\": \"&glj;\",\n      \"≩\": \"&gneqq;\",\n      \"⪊\": \"&gnapprox;\",\n      \"⪈\": \"&gneq;\",\n      \"⋧\": \"&gnsim;\",\n      \"𝕘\": \"&gopf;\",\n      \"ℊ\": \"&gscr;\",\n      \"⪎\": \"&gsime;\",\n      \"⪐\": \"&gsiml;\",\n      \"⪧\": \"&gtcc;\",\n      \"⩺\": \"&gtcir;\",\n      \"⋗\": \"&gtrdot;\",\n      \"⦕\": \"&gtlPar;\",\n      \"⩼\": \"&gtquest;\",\n      \"⥸\": \"&gtrarr;\",\n      \"≩︀\": \"&gvnE;\",\n      \"ъ\": \"&hardcy;\",\n      \"⥈\": \"&harrcir;\",\n      \"↭\": \"&leftrightsquigarrow;\",\n      \"ℏ\": \"&plankv;\",\n      \"ĥ\": \"&hcirc;\",\n      \"♥\": \"&heartsuit;\",\n      \"…\": \"&mldr;\",\n      \"⊹\": \"&hercon;\",\n      \"𝔥\": \"&hfr;\",\n      \"⤥\": \"&searhk;\",\n      \"⤦\": \"&swarhk;\",\n      \"⇿\": \"&hoarr;\",\n      \"∻\": \"&homtht;\",\n      \"↩\": \"&larrhk;\",\n      \"↪\": \"&rarrhk;\",\n      \"𝕙\": \"&hopf;\",\n      \"―\": \"&horbar;\",\n      \"𝒽\": \"&hscr;\",\n      \"ħ\": \"&hstrok;\",\n      \"⁃\": \"&hybull;\",\n      \"í\": \"&iacute;\",\n      \"î\": \"&icirc;\",\n      \"и\": \"&icy;\",\n      \"е\": \"&iecy;\",\n      \"¡\": \"&iexcl;\",\n      \"𝔦\": \"&ifr;\",\n      \"ì\": \"&igrave;\",\n      \"⨌\": \"&qint;\",\n      \"∭\": \"&tint;\",\n      \"⧜\": \"&iinfin;\",\n      \"℩\": \"&iiota;\",\n      \"ij\": \"&ijlig;\",\n      \"ī\": \"&imacr;\",\n      \"ı\": \"&inodot;\",\n      \"⊷\": \"&imof;\",\n      \"Ƶ\": \"&imped;\",\n      \"℅\": \"&incare;\",\n      \"∞\": \"&infin;\",\n      \"⧝\": \"&infintie;\",\n      \"⊺\": \"&intercal;\",\n      \"⨗\": \"&intlarhk;\",\n      \"⨼\": \"&iprod;\",\n      \"ё\": \"&iocy;\",\n      \"į\": \"&iogon;\",\n      \"𝕚\": \"&iopf;\",\n      \"ι\": \"&iota;\",\n      \"¿\": \"&iquest;\",\n      \"𝒾\": \"&iscr;\",\n      \"⋹\": \"&isinE;\",\n      \"⋵\": \"&isindot;\",\n      \"⋴\": \"&isins;\",\n      \"⋳\": \"&isinsv;\",\n      \"ĩ\": \"&itilde;\",\n      \"і\": \"&iukcy;\",\n      \"ï\": \"&iuml;\",\n      \"ĵ\": \"&jcirc;\",\n      \"й\": \"&jcy;\",\n      \"𝔧\": \"&jfr;\",\n      \"ȷ\": \"&jmath;\",\n      \"𝕛\": \"&jopf;\",\n      \"𝒿\": \"&jscr;\",\n      \"ј\": \"&jsercy;\",\n      \"є\": \"&jukcy;\",\n      \"κ\": \"&kappa;\",\n      \"ϰ\": \"&varkappa;\",\n      \"ķ\": \"&kcedil;\",\n      \"к\": \"&kcy;\",\n      \"𝔨\": \"&kfr;\",\n      \"ĸ\": \"&kgreen;\",\n      \"х\": \"&khcy;\",\n      \"ќ\": \"&kjcy;\",\n      \"𝕜\": \"&kopf;\",\n      \"𝓀\": \"&kscr;\",\n      \"⤛\": \"&lAtail;\",\n      \"⤎\": \"&lBarr;\",\n      \"⪋\": \"&lesseqqgtr;\",\n      \"⥢\": \"&lHar;\",\n      \"ĺ\": \"&lacute;\",\n      \"⦴\": \"&laemptyv;\",\n      \"λ\": \"&lambda;\",\n      \"⦑\": \"&langd;\",\n      \"⪅\": \"&lessapprox;\",\n      \"«\": \"&laquo;\",\n      \"⤟\": \"&larrbfs;\",\n      \"⤝\": \"&larrfs;\",\n      \"↫\": \"&looparrowleft;\",\n      \"⤹\": \"&larrpl;\",\n      \"⥳\": \"&larrsim;\",\n      \"↢\": \"&leftarrowtail;\",\n      \"⪫\": \"&lat;\",\n      \"⤙\": \"&latail;\",\n      \"⪭\": \"&late;\",\n      \"⪭︀\": \"&lates;\",\n      \"⤌\": \"&lbarr;\",\n      \"❲\": \"&lbbrk;\",\n      \"{\": \"&lcub;\",\n      \"[\": \"&lsqb;\",\n      \"⦋\": \"&lbrke;\",\n      \"⦏\": \"&lbrksld;\",\n      \"⦍\": \"&lbrkslu;\",\n      \"ľ\": \"&lcaron;\",\n      \"ļ\": \"&lcedil;\",\n      \"л\": \"&lcy;\",\n      \"⤶\": \"&ldca;\",\n      \"⥧\": \"&ldrdhar;\",\n      \"⥋\": \"&ldrushar;\",\n      \"↲\": \"&ldsh;\",\n      \"≤\": \"&leq;\",\n      \"⇇\": \"&llarr;\",\n      \"⋋\": \"&lthree;\",\n      \"⪨\": \"&lescc;\",\n      \"⩿\": \"&lesdot;\",\n      \"⪁\": \"&lesdoto;\",\n      \"⪃\": \"&lesdotor;\",\n      \"⋚︀\": \"&lesg;\",\n      \"⪓\": \"&lesges;\",\n      \"⋖\": \"&ltdot;\",\n      \"⥼\": \"&lfisht;\",\n      \"𝔩\": \"&lfr;\",\n      \"⪑\": \"&lgE;\",\n      \"⥪\": \"&lharul;\",\n      \"▄\": \"&lhblk;\",\n      \"љ\": \"&ljcy;\",\n      \"⥫\": \"&llhard;\",\n      \"◺\": \"&lltri;\",\n      \"ŀ\": \"&lmidot;\",\n      \"⎰\": \"&lmoustache;\",\n      \"≨\": \"&lneqq;\",\n      \"⪉\": \"&lnapprox;\",\n      \"⪇\": \"&lneq;\",\n      \"⋦\": \"&lnsim;\",\n      \"⟬\": \"&loang;\",\n      \"⇽\": \"&loarr;\",\n      \"⟼\": \"&xmap;\",\n      \"↬\": \"&rarrlp;\",\n      \"⦅\": \"&lopar;\",\n      \"𝕝\": \"&lopf;\",\n      \"⨭\": \"&loplus;\",\n      \"⨴\": \"&lotimes;\",\n      \"∗\": \"&lowast;\",\n      \"◊\": \"&lozenge;\",\n      \"(\": \"&lpar;\",\n      \"⦓\": \"&lparlt;\",\n      \"⥭\": \"&lrhard;\",\n      \"‎\": \"&lrm;\",\n      \"⊿\": \"&lrtri;\",\n      \"‹\": \"&lsaquo;\",\n      \"𝓁\": \"&lscr;\",\n      \"⪍\": \"&lsime;\",\n      \"⪏\": \"&lsimg;\",\n      \"‚\": \"&sbquo;\",\n      \"ł\": \"&lstrok;\",\n      \"⪦\": \"&ltcc;\",\n      \"⩹\": \"&ltcir;\",\n      \"⋉\": \"&ltimes;\",\n      \"⥶\": \"&ltlarr;\",\n      \"⩻\": \"&ltquest;\",\n      \"⦖\": \"&ltrPar;\",\n      \"◃\": \"&triangleleft;\",\n      \"⥊\": \"&lurdshar;\",\n      \"⥦\": \"&luruhar;\",\n      \"≨︀\": \"&lvnE;\",\n      \"∺\": \"&mDDot;\",\n      \"¯\": \"&strns;\",\n      \"♂\": \"&male;\",\n      \"✠\": \"&maltese;\",\n      \"▮\": \"&marker;\",\n      \"⨩\": \"&mcomma;\",\n      \"м\": \"&mcy;\",\n      \"—\": \"&mdash;\",\n      \"𝔪\": \"&mfr;\",\n      \"℧\": \"&mho;\",\n      \"µ\": \"&micro;\",\n      \"⫰\": \"&midcir;\",\n      \"−\": \"&minus;\",\n      \"⨪\": \"&minusdu;\",\n      \"⫛\": \"&mlcp;\",\n      \"⊧\": \"&models;\",\n      \"𝕞\": \"&mopf;\",\n      \"𝓂\": \"&mscr;\",\n      \"μ\": \"&mu;\",\n      \"⊸\": \"&mumap;\",\n      \"⋙̸\": \"&nGg;\",\n      \"≫⃒\": \"&nGt;\",\n      \"⇍\": \"&nlArr;\",\n      \"⇎\": \"&nhArr;\",\n      \"⋘̸\": \"&nLl;\",\n      \"≪⃒\": \"&nLt;\",\n      \"⇏\": \"&nrArr;\",\n      \"⊯\": \"&nVDash;\",\n      \"⊮\": \"&nVdash;\",\n      \"ń\": \"&nacute;\",\n      \"∠⃒\": \"&nang;\",\n      \"⩰̸\": \"&napE;\",\n      \"≋̸\": \"&napid;\",\n      \"ʼn\": \"&napos;\",\n      \"♮\": \"&natural;\",\n      \"⩃\": \"&ncap;\",\n      \"ň\": \"&ncaron;\",\n      \"ņ\": \"&ncedil;\",\n      \"⩭̸\": \"&ncongdot;\",\n      \"⩂\": \"&ncup;\",\n      \"н\": \"&ncy;\",\n      \"–\": \"&ndash;\",\n      \"⇗\": \"&neArr;\",\n      \"⤤\": \"&nearhk;\",\n      \"≐̸\": \"&nedot;\",\n      \"⤨\": \"&toea;\",\n      \"𝔫\": \"&nfr;\",\n      \"↮\": \"&nleftrightarrow;\",\n      \"⫲\": \"&nhpar;\",\n      \"⋼\": \"&nis;\",\n      \"⋺\": \"&nisd;\",\n      \"њ\": \"&njcy;\",\n      \"≦̸\": \"&nleqq;\",\n      \"↚\": \"&nleftarrow;\",\n      \"‥\": \"&nldr;\",\n      \"𝕟\": \"&nopf;\",\n      \"¬\": \"&not;\",\n      \"⋹̸\": \"&notinE;\",\n      \"⋵̸\": \"&notindot;\",\n      \"⋷\": \"&notinvb;\",\n      \"⋶\": \"&notinvc;\",\n      \"⋾\": \"&notnivb;\",\n      \"⋽\": \"&notnivc;\",\n      \"⫽⃥\": \"&nparsl;\",\n      \"∂̸\": \"&npart;\",\n      \"⨔\": \"&npolint;\",\n      \"↛\": \"&nrightarrow;\",\n      \"⤳̸\": \"&nrarrc;\",\n      \"↝̸\": \"&nrarrw;\",\n      \"𝓃\": \"&nscr;\",\n      \"⊄\": \"&nsub;\",\n      \"⫅̸\": \"&nsubseteqq;\",\n      \"⊅\": \"&nsup;\",\n      \"⫆̸\": \"&nsupseteqq;\",\n      \"ñ\": \"&ntilde;\",\n      \"ν\": \"&nu;\",\n      \"#\": \"&num;\",\n      \"№\": \"&numero;\",\n      \" \": \"&numsp;\",\n      \"⊭\": \"&nvDash;\",\n      \"⤄\": \"&nvHarr;\",\n      \"≍⃒\": \"&nvap;\",\n      \"⊬\": \"&nvdash;\",\n      \"≥⃒\": \"&nvge;\",\n      \">⃒\": \"&nvgt;\",\n      \"⧞\": \"&nvinfin;\",\n      \"⤂\": \"&nvlArr;\",\n      \"≤⃒\": \"&nvle;\",\n      \"<⃒\": \"&nvlt;\",\n      \"⊴⃒\": \"&nvltrie;\",\n      \"⤃\": \"&nvrArr;\",\n      \"⊵⃒\": \"&nvrtrie;\",\n      \"∼⃒\": \"&nvsim;\",\n      \"⇖\": \"&nwArr;\",\n      \"⤣\": \"&nwarhk;\",\n      \"⤧\": \"&nwnear;\",\n      \"ó\": \"&oacute;\",\n      \"ô\": \"&ocirc;\",\n      \"о\": \"&ocy;\",\n      \"ő\": \"&odblac;\",\n      \"⨸\": \"&odiv;\",\n      \"⦼\": \"&odsold;\",\n      \"œ\": \"&oelig;\",\n      \"⦿\": \"&ofcir;\",\n      \"𝔬\": \"&ofr;\",\n      \"˛\": \"&ogon;\",\n      \"ò\": \"&ograve;\",\n      \"⧁\": \"&ogt;\",\n      \"⦵\": \"&ohbar;\",\n      \"⦾\": \"&olcir;\",\n      \"⦻\": \"&olcross;\",\n      \"⧀\": \"&olt;\",\n      \"ō\": \"&omacr;\",\n      \"ω\": \"&omega;\",\n      \"ο\": \"&omicron;\",\n      \"⦶\": \"&omid;\",\n      \"𝕠\": \"&oopf;\",\n      \"⦷\": \"&opar;\",\n      \"⦹\": \"&operp;\",\n      \"∨\": \"&vee;\",\n      \"⩝\": \"&ord;\",\n      \"ℴ\": \"&oscr;\",\n      \"ª\": \"&ordf;\",\n      \"º\": \"&ordm;\",\n      \"⊶\": \"&origof;\",\n      \"⩖\": \"&oror;\",\n      \"⩗\": \"&orslope;\",\n      \"⩛\": \"&orv;\",\n      \"ø\": \"&oslash;\",\n      \"⊘\": \"&osol;\",\n      \"õ\": \"&otilde;\",\n      \"⨶\": \"&otimesas;\",\n      \"ö\": \"&ouml;\",\n      \"⌽\": \"&ovbar;\",\n      \"¶\": \"&para;\",\n      \"⫳\": \"&parsim;\",\n      \"⫽\": \"&parsl;\",\n      \"п\": \"&pcy;\",\n      \"%\": \"&percnt;\",\n      \".\": \"&period;\",\n      \"‰\": \"&permil;\",\n      \"‱\": \"&pertenk;\",\n      \"𝔭\": \"&pfr;\",\n      \"φ\": \"&phi;\",\n      \"ϕ\": \"&varphi;\",\n      \"☎\": \"&phone;\",\n      \"π\": \"&pi;\",\n      \"ϖ\": \"&varpi;\",\n      \"ℎ\": \"&planckh;\",\n      \"+\": \"&plus;\",\n      \"⨣\": \"&plusacir;\",\n      \"⨢\": \"&pluscir;\",\n      \"⨥\": \"&plusdu;\",\n      \"⩲\": \"&pluse;\",\n      \"⨦\": \"&plussim;\",\n      \"⨧\": \"&plustwo;\",\n      \"⨕\": \"&pointint;\",\n      \"𝕡\": \"&popf;\",\n      \"£\": \"&pound;\",\n      \"⪳\": \"&prE;\",\n      \"⪷\": \"&precapprox;\",\n      \"⪹\": \"&prnap;\",\n      \"⪵\": \"&prnE;\",\n      \"⋨\": \"&prnsim;\",\n      \"′\": \"&prime;\",\n      \"⌮\": \"&profalar;\",\n      \"⌒\": \"&profline;\",\n      \"⌓\": \"&profsurf;\",\n      \"⊰\": \"&prurel;\",\n      \"𝓅\": \"&pscr;\",\n      \"ψ\": \"&psi;\",\n      \" \": \"&puncsp;\",\n      \"𝔮\": \"&qfr;\",\n      \"𝕢\": \"&qopf;\",\n      \"⁗\": \"&qprime;\",\n      \"𝓆\": \"&qscr;\",\n      \"⨖\": \"&quatint;\",\n      \"?\": \"&quest;\",\n      \"⤜\": \"&rAtail;\",\n      \"⥤\": \"&rHar;\",\n      \"∽̱\": \"&race;\",\n      \"ŕ\": \"&racute;\",\n      \"⦳\": \"&raemptyv;\",\n      \"⦒\": \"&rangd;\",\n      \"⦥\": \"&range;\",\n      \"»\": \"&raquo;\",\n      \"⥵\": \"&rarrap;\",\n      \"⤠\": \"&rarrbfs;\",\n      \"⤳\": \"&rarrc;\",\n      \"⤞\": \"&rarrfs;\",\n      \"⥅\": \"&rarrpl;\",\n      \"⥴\": \"&rarrsim;\",\n      \"↣\": \"&rightarrowtail;\",\n      \"↝\": \"&rightsquigarrow;\",\n      \"⤚\": \"&ratail;\",\n      \"∶\": \"&ratio;\",\n      \"❳\": \"&rbbrk;\",\n      \"}\": \"&rcub;\",\n      \"]\": \"&rsqb;\",\n      \"⦌\": \"&rbrke;\",\n      \"⦎\": \"&rbrksld;\",\n      \"⦐\": \"&rbrkslu;\",\n      \"ř\": \"&rcaron;\",\n      \"ŗ\": \"&rcedil;\",\n      \"р\": \"&rcy;\",\n      \"⤷\": \"&rdca;\",\n      \"⥩\": \"&rdldhar;\",\n      \"↳\": \"&rdsh;\",\n      \"▭\": \"&rect;\",\n      \"⥽\": \"&rfisht;\",\n      \"𝔯\": \"&rfr;\",\n      \"⥬\": \"&rharul;\",\n      \"ρ\": \"&rho;\",\n      \"ϱ\": \"&varrho;\",\n      \"⇉\": \"&rrarr;\",\n      \"⋌\": \"&rthree;\",\n      \"˚\": \"&ring;\",\n      \"‏\": \"&rlm;\",\n      \"⎱\": \"&rmoustache;\",\n      \"⫮\": \"&rnmid;\",\n      \"⟭\": \"&roang;\",\n      \"⇾\": \"&roarr;\",\n      \"⦆\": \"&ropar;\",\n      \"𝕣\": \"&ropf;\",\n      \"⨮\": \"&roplus;\",\n      \"⨵\": \"&rotimes;\",\n      \")\": \"&rpar;\",\n      \"⦔\": \"&rpargt;\",\n      \"⨒\": \"&rppolint;\",\n      \"›\": \"&rsaquo;\",\n      \"𝓇\": \"&rscr;\",\n      \"⋊\": \"&rtimes;\",\n      \"▹\": \"&triangleright;\",\n      \"⧎\": \"&rtriltri;\",\n      \"⥨\": \"&ruluhar;\",\n      \"℞\": \"&rx;\",\n      \"ś\": \"&sacute;\",\n      \"⪴\": \"&scE;\",\n      \"⪸\": \"&succapprox;\",\n      \"š\": \"&scaron;\",\n      \"ş\": \"&scedil;\",\n      \"ŝ\": \"&scirc;\",\n      \"⪶\": \"&succneqq;\",\n      \"⪺\": \"&succnapprox;\",\n      \"⋩\": \"&succnsim;\",\n      \"⨓\": \"&scpolint;\",\n      \"с\": \"&scy;\",\n      \"⋅\": \"&sdot;\",\n      \"⩦\": \"&sdote;\",\n      \"⇘\": \"&seArr;\",\n      \"§\": \"&sect;\",\n      \";\": \"&semi;\",\n      \"⤩\": \"&tosa;\",\n      \"✶\": \"&sext;\",\n      \"𝔰\": \"&sfr;\",\n      \"♯\": \"&sharp;\",\n      \"щ\": \"&shchcy;\",\n      \"ш\": \"&shcy;\",\n      \"­\": \"&shy;\",\n      \"σ\": \"&sigma;\",\n      \"ς\": \"&varsigma;\",\n      \"⩪\": \"&simdot;\",\n      \"⪞\": \"&simg;\",\n      \"⪠\": \"&simgE;\",\n      \"⪝\": \"&siml;\",\n      \"⪟\": \"&simlE;\",\n      \"≆\": \"&simne;\",\n      \"⨤\": \"&simplus;\",\n      \"⥲\": \"&simrarr;\",\n      \"⨳\": \"&smashp;\",\n      \"⧤\": \"&smeparsl;\",\n      \"⌣\": \"&ssmile;\",\n      \"⪪\": \"&smt;\",\n      \"⪬\": \"&smte;\",\n      \"⪬︀\": \"&smtes;\",\n      \"ь\": \"&softcy;\",\n      \"/\": \"&sol;\",\n      \"⧄\": \"&solb;\",\n      \"⌿\": \"&solbar;\",\n      \"𝕤\": \"&sopf;\",\n      \"♠\": \"&spadesuit;\",\n      \"⊓︀\": \"&sqcaps;\",\n      \"⊔︀\": \"&sqcups;\",\n      \"𝓈\": \"&sscr;\",\n      \"☆\": \"&star;\",\n      \"⊂\": \"&subset;\",\n      \"⫅\": \"&subseteqq;\",\n      \"⪽\": \"&subdot;\",\n      \"⫃\": \"&subedot;\",\n      \"⫁\": \"&submult;\",\n      \"⫋\": \"&subsetneqq;\",\n      \"⊊\": \"&subsetneq;\",\n      \"⪿\": \"&subplus;\",\n      \"⥹\": \"&subrarr;\",\n      \"⫇\": \"&subsim;\",\n      \"⫕\": \"&subsub;\",\n      \"⫓\": \"&subsup;\",\n      \"♪\": \"&sung;\",\n      \"¹\": \"&sup1;\",\n      \"²\": \"&sup2;\",\n      \"³\": \"&sup3;\",\n      \"⫆\": \"&supseteqq;\",\n      \"⪾\": \"&supdot;\",\n      \"⫘\": \"&supdsub;\",\n      \"⫄\": \"&supedot;\",\n      \"⟉\": \"&suphsol;\",\n      \"⫗\": \"&suphsub;\",\n      \"⥻\": \"&suplarr;\",\n      \"⫂\": \"&supmult;\",\n      \"⫌\": \"&supsetneqq;\",\n      \"⊋\": \"&supsetneq;\",\n      \"⫀\": \"&supplus;\",\n      \"⫈\": \"&supsim;\",\n      \"⫔\": \"&supsub;\",\n      \"⫖\": \"&supsup;\",\n      \"⇙\": \"&swArr;\",\n      \"⤪\": \"&swnwar;\",\n      \"ß\": \"&szlig;\",\n      \"⌖\": \"&target;\",\n      \"τ\": \"&tau;\",\n      \"ť\": \"&tcaron;\",\n      \"ţ\": \"&tcedil;\",\n      \"т\": \"&tcy;\",\n      \"⌕\": \"&telrec;\",\n      \"𝔱\": \"&tfr;\",\n      \"θ\": \"&theta;\",\n      \"ϑ\": \"&vartheta;\",\n      \"þ\": \"&thorn;\",\n      \"×\": \"&times;\",\n      \"⨱\": \"&timesbar;\",\n      \"⨰\": \"&timesd;\",\n      \"⌶\": \"&topbot;\",\n      \"⫱\": \"&topcir;\",\n      \"𝕥\": \"&topf;\",\n      \"⫚\": \"&topfork;\",\n      \"‴\": \"&tprime;\",\n      \"▵\": \"&utri;\",\n      \"≜\": \"&trie;\",\n      \"◬\": \"&tridot;\",\n      \"⨺\": \"&triminus;\",\n      \"⨹\": \"&triplus;\",\n      \"⧍\": \"&trisb;\",\n      \"⨻\": \"&tritime;\",\n      \"⏢\": \"&trpezium;\",\n      \"𝓉\": \"&tscr;\",\n      \"ц\": \"&tscy;\",\n      \"ћ\": \"&tshcy;\",\n      \"ŧ\": \"&tstrok;\",\n      \"⥣\": \"&uHar;\",\n      \"ú\": \"&uacute;\",\n      \"ў\": \"&ubrcy;\",\n      \"ŭ\": \"&ubreve;\",\n      \"û\": \"&ucirc;\",\n      \"у\": \"&ucy;\",\n      \"ű\": \"&udblac;\",\n      \"⥾\": \"&ufisht;\",\n      \"𝔲\": \"&ufr;\",\n      \"ù\": \"&ugrave;\",\n      \"▀\": \"&uhblk;\",\n      \"⌜\": \"&ulcorner;\",\n      \"⌏\": \"&ulcrop;\",\n      \"◸\": \"&ultri;\",\n      \"ū\": \"&umacr;\",\n      \"ų\": \"&uogon;\",\n      \"𝕦\": \"&uopf;\",\n      \"υ\": \"&upsilon;\",\n      \"⇈\": \"&uuarr;\",\n      \"⌝\": \"&urcorner;\",\n      \"⌎\": \"&urcrop;\",\n      \"ů\": \"&uring;\",\n      \"◹\": \"&urtri;\",\n      \"𝓊\": \"&uscr;\",\n      \"⋰\": \"&utdot;\",\n      \"ũ\": \"&utilde;\",\n      \"ü\": \"&uuml;\",\n      \"⦧\": \"&uwangle;\",\n      \"⫨\": \"&vBar;\",\n      \"⫩\": \"&vBarv;\",\n      \"⦜\": \"&vangrt;\",\n      \"⊊︀\": \"&vsubne;\",\n      \"⫋︀\": \"&vsubnE;\",\n      \"⊋︀\": \"&vsupne;\",\n      \"⫌︀\": \"&vsupnE;\",\n      \"в\": \"&vcy;\",\n      \"⊻\": \"&veebar;\",\n      \"≚\": \"&veeeq;\",\n      \"⋮\": \"&vellip;\",\n      \"𝔳\": \"&vfr;\",\n      \"𝕧\": \"&vopf;\",\n      \"𝓋\": \"&vscr;\",\n      \"⦚\": \"&vzigzag;\",\n      \"ŵ\": \"&wcirc;\",\n      \"⩟\": \"&wedbar;\",\n      \"≙\": \"&wedgeq;\",\n      \"℘\": \"&wp;\",\n      \"𝔴\": \"&wfr;\",\n      \"𝕨\": \"&wopf;\",\n      \"𝓌\": \"&wscr;\",\n      \"𝔵\": \"&xfr;\",\n      \"ξ\": \"&xi;\",\n      \"⋻\": \"&xnis;\",\n      \"𝕩\": \"&xopf;\",\n      \"𝓍\": \"&xscr;\",\n      \"ý\": \"&yacute;\",\n      \"я\": \"&yacy;\",\n      \"ŷ\": \"&ycirc;\",\n      \"ы\": \"&ycy;\",\n      \"¥\": \"&yen;\",\n      \"𝔶\": \"&yfr;\",\n      \"ї\": \"&yicy;\",\n      \"𝕪\": \"&yopf;\",\n      \"𝓎\": \"&yscr;\",\n      \"ю\": \"&yucy;\",\n      \"ÿ\": \"&yuml;\",\n      \"ź\": \"&zacute;\",\n      \"ž\": \"&zcaron;\",\n      \"з\": \"&zcy;\",\n      \"ż\": \"&zdot;\",\n      \"ζ\": \"&zeta;\",\n      \"𝔷\": \"&zfr;\",\n      \"ж\": \"&zhcy;\",\n      \"⇝\": \"&zigrarr;\",\n      \"𝕫\": \"&zopf;\",\n      \"𝓏\": \"&zscr;\",\n      \"‍\": \"&zwj;\",\n      \"‌\": \"&zwnj;\"\n    }\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.numericUnicodeMap = {\n  0: 65533,\n  128: 8364,\n  130: 8218,\n  131: 402,\n  132: 8222,\n  133: 8230,\n  134: 8224,\n  135: 8225,\n  136: 710,\n  137: 8240,\n  138: 352,\n  139: 8249,\n  140: 338,\n  142: 381,\n  145: 8216,\n  146: 8217,\n  147: 8220,\n  148: 8221,\n  149: 8226,\n  150: 8211,\n  151: 8212,\n  152: 732,\n  153: 8482,\n  154: 353,\n  155: 8250,\n  156: 339,\n  158: 382,\n  159: 376\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.fromCodePoint = String.fromCodePoint || function (astralCodePoint) {\n  return String.fromCharCode(Math.floor((astralCodePoint - 65536) / 1024) + 55296, (astralCodePoint - 65536) % 1024 + 56320);\n};\nexports.getCodePoint = String.prototype.codePointAt ? function (input, position) {\n  return input.codePointAt(position);\n} : function (input, position) {\n  return (input.charCodeAt(position) - 55296) * 1024 + input.charCodeAt(position + 1) - 56320 + 65536;\n};\nexports.highSurrogateFrom = 55296;\nexports.highSurrogateTo = 56319;","(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : global.vhtml = factory();\n})(this, function () {\n  'use strict';\n\n  var emptyTags = ['area', 'base', 'br', 'col', 'command', 'embed', 'hr', 'img', 'input', 'keygen', 'link', 'meta', 'param', 'source', 'track', 'wbr'];\n  var esc = function esc(str) {\n    return String(str).replace(/[&<>\"']/g, function (s) {\n      return '&' + map[s] + ';';\n    });\n  };\n  var map = {\n    '&': 'amp',\n    '<': 'lt',\n    '>': 'gt',\n    '\"': 'quot',\n    \"'\": 'apos'\n  };\n  var setInnerHTMLAttr = 'dangerouslySetInnerHTML';\n  var DOMAttributeNames = {\n    className: 'class',\n    htmlFor: 'for'\n  };\n  var sanitized = {};\n  function h(name, attrs) {\n    var stack = [],\n      s = '';\n    attrs = attrs || {};\n    for (var i = arguments.length; i-- > 2;) {\n      stack.push(arguments[i]);\n    }\n    if (typeof name === 'function') {\n      attrs.children = stack.reverse();\n      return name(attrs);\n    }\n    if (name) {\n      s += '<' + name;\n      if (attrs) for (var _i in attrs) {\n        if (attrs[_i] !== false && attrs[_i] != null && _i !== setInnerHTMLAttr) {\n          s += ' ' + (DOMAttributeNames[_i] ? DOMAttributeNames[_i] : esc(_i)) + '=\"' + esc(attrs[_i]) + '\"';\n        }\n      }\n      s += '>';\n    }\n    if (emptyTags.indexOf(name) === -1) {\n      if (attrs[setInnerHTMLAttr]) {\n        s += attrs[setInnerHTMLAttr].__html;\n      } else while (stack.length) {\n        var child = stack.pop();\n        if (child) {\n          if (child.pop) {\n            for (var _i2 = child.length; _i2--;) {\n              stack.push(child[_i2]);\n            }\n          } else {\n            s += sanitized[child] === true ? child : esc(child);\n          }\n        }\n      }\n      s += name ? '</' + name + '>' : '';\n    }\n    sanitized[s] = true;\n    return s;\n  }\n  return h;\n});","// extracted by mini-css-extract-plugin\nexport var categories = \"all-news-module--categories--f9274\";\nexport var images = \"all-news-module--images--bb9cf\";\nexport var link = \"all-news-module--link--b5b1f\";\nexport var newsCard = \"all-news-module--newsCard--79a27\";\nexport var newsCardContent = \"all-news-module--newsCardContent--53cf1\";\nexport var newsCardDescription = \"all-news-module--newsCardDescription--d6b50\";\nexport var newsCardDescriptionContent = \"all-news-module--newsCardDescriptionContent--652a6\";\nexport var newsCardHeader = \"all-news-module--newsCardHeader--195a2\";\nexport var newsCardImageBox = \"all-news-module--newsCardImageBox--ffb22\";\nexport var newsCardList = \"all-news-module--newsCardList--9eae7\";\nexport var newsTitle = \"all-news-module--newsTitle--d6328\";\nexport var publicationDate = \"all-news-module--publicationDate--dbb7e\";\nexport var truncateContent = \"all-news-module--truncate-content--3f141\";\nexport var truncateOverflow = \"all-news-module--truncate-overflow--76760\";","import React from \"react\"\nimport * as styles from \"./all-news.module.scss\"\nimport { AllNewsModuleConfigurationFieldsFragment, NewsListFieldsFragment } from \"../../../graphql-types\"\nimport { ReactSVG } from \"react-svg\"\nimport { graphql } from \"gatsby\"\nimport * as inputsStyles from \"../layout/inputs.module.scss\"\nimport { format } from \"date-fns\"\nimport sanitizeHtml from \"sanitize-html\"\nimport * as globalConfig from \"../../../config\"\n\ntype RenderProps = {\n  news: NewsListFieldsFragment[]\n  config: AllNewsModuleConfigurationFieldsFragment\n  title: string\n}\n\nexport function isNewsPublished(news: NewsListFieldsFragment) {\n  const todayDate: number = new Date().getTime()\n  const publicationDate: number = new Date(news.publicationDate).getTime()\n  const publicationStopDate: number = new Date(news.publicationStopDate).getTime()\n\n  if (\n    (publicationStopDate && (todayDate < publicationDate || todayDate >= publicationStopDate)) ||\n    todayDate < publicationDate\n  ) {\n    return false\n  } else return true\n}\n\nconst AllNews: React.FC<RenderProps> = ({ news, title, config }) => {\n  function buildNewsCard(newsData: NewsListFieldsFragment) {\n    const TEXT_MAX_LENGTH: number = 340\n    const isEllispisNeeded: boolean = newsData.newsIntroduction.length > TEXT_MAX_LENGTH\n    const redirectUrl: string = `/news/${newsData.slug}`\n    const categories: string = newsData.categories && newsData.categories.map(e => e.title).join(\", \")\n    // Error displayed by date-format => RangeError: Use `yyyy` instead of `YYYY` (in `dd/MM/YYYY`) for formatting years to the input\n    const dateFormat =\n      globalConfig.date_format[globalConfig.locale] === \"dd/MM/YYYY\"\n        ? \"dd/MM/yyyy\"\n        : globalConfig.date_format[globalConfig.locale]\n    const publicationDate = format(new Date(newsData.publicationDate), dateFormat)\n\n    return (\n      <li key={newsData.id} className={styles.newsCard} aria-labelledby={newsData.title}>\n        <div className={styles.newsCardHeader}>\n          <div className={styles.publicationDate}>\n            {publicationDate} {newsData.categories.length != 0 ? \" –\" : null}\n          </div>\n          <div className={styles.categories}>{categories}</div>\n        </div>\n        <div className={styles.newsCardContent}>\n          <div className={styles.newsCardImageBox}>\n            {newsData.image.format == \"svg\" ? (\n              <ReactSVG\n                src={newsData.image.url}\n                className={styles.images}\n                beforeInjection={svg => svg.setAttribute(\"aria-label\", newsData.image.alt || \"\")}\n              />\n            ) : (\n              <img src={newsData.image.url} className={styles.images} alt={newsData.image.alt || \"\"} />\n            )}\n          </div>\n          <div className={styles.newsCardDescription}>\n            <h2 className={styles.newsTitle}>{newsData.title}</h2>\n            <div className={styles.newsCardDescriptionContent}>\n              <div\n                className={\n                  isEllispisNeeded\n                    ? `${styles.truncateContent} ${styles.truncateOverflow}`\n                    : `${styles.truncateContent}`\n                }\n              >\n                <p\n                  dangerouslySetInnerHTML={{\n                    __html: sanitizeHtml(newsData.newsIntroduction),\n                  }}\n                />\n              </div>\n              <a href={redirectUrl} className={`${styles.link} ${inputsStyles.primaryButton}`}>\n                {config.newsRedirectLabel}\n              </a>\n            </div>\n          </div>\n        </div>\n      </li>\n    )\n  }\n\n  return (\n    <ul className={styles.newsCardList} aria-label={title}>\n      {news.filter(isNewsPublished).map(buildNewsCard)}\n    </ul>\n  )\n}\n\nexport const fragments = graphql`\n  fragment AllNewsModuleConfigurationFields on DatoCmsGlobalConfiguration {\n    lastNewsLabel\n    newsRedirectLabel\n  }\n\n  fragment NewsListFields on DatoCmsNews {\n    id\n    __typename\n    title\n    slug\n    publicationDate\n    publicationStopDate\n    newsIntroduction\n    categories {\n      title\n    }\n    image {\n      alt\n      url\n      format\n    }\n  }\n`\n\nexport default AllNews\n","import * as inputsStyles from \"../inputs.module.scss\"\nimport React from \"react\"\nimport { RegisterOptions, UseFormRegisterReturn } from \"react-hook-form\"\n\ntype RenderProps = {\n  id?: string\n  type: string\n  name: string\n  required?: boolean\n  className?: string\n  placeholder?: string\n  validationType?: ValidationType\n  hasErrors?: boolean\n  onFocus?: (value: any) => void\n  autocomplete?: boolean\n} & (\n  | {\n      value?: string\n      onChange?: (value: string) => void\n      register: (name: string, options?: RegisterOptions) => UseFormRegisterReturn\n    }\n  | { value: string; onChange: (value: string) => void; register: undefined }\n)\n\nexport enum ValidationType {\n  None,\n  Email,\n  PhoneNumber,\n  PhoneNumberE164,\n}\n\nconst Input: React.FC<RenderProps> = ({\n  id,\n  type,\n  name,\n  required,\n  className = \"\",\n  placeholder = \"\",\n  value,\n  onChange,\n  register,\n  validationType,\n  hasErrors,\n  onFocus,\n  autocomplete,\n}) => {\n  const validation = {\n    required,\n    pattern: getValidationPattern(validationType),\n  }\n\n  return register != undefined ? (\n    <input\n      id={id}\n      type={type}\n      name={name}\n      aria-describedby={id}\n      placeholder={placeholder}\n      required={required}\n      autoComplete={validationType === ValidationType.PhoneNumber ? \"tel-national\" : autocomplete ? name : null}\n      className={\n        inputsStyles.input +\n        \" \" +\n        (isNotBlank(value) ? inputsStyles.notBlank + \" \" : \"\") +\n        (hasErrors ? inputsStyles.fieldInError + \" \" : \"\") +\n        className\n      }\n      onChange={event => {\n        onChange && onChange(event.target.value)\n      }}\n      {...register(name, { ...validation })}\n      value={value}\n      onFocus={event => {\n        onFocus && onFocus(event.target.id)\n      }}\n    />\n  ) : (\n    <input\n      id={id}\n      type={type}\n      name={name}\n      aria-describedby={id}\n      autoComplete={validationType === ValidationType.PhoneNumber ? \"tel-national\" : autocomplete ? name : null}\n      placeholder={placeholder}\n      required={required}\n      className={\n        inputsStyles.input +\n        \" \" +\n        (isNotBlank(value) ? inputsStyles.notBlank + \" \" : \"\") +\n        (hasErrors ? inputsStyles.fieldInError + \" \" : \"\") +\n        className\n      }\n      onChange={event => {\n        onChange && onChange(event.target.value)\n      }}\n      value={value}\n      onFocus={event => {\n        onFocus && onFocus(event.target.id)\n      }}\n    />\n  )\n}\n\nfunction getValidationPattern(validationType: ValidationType) {\n  switch (validationType) {\n    case ValidationType.Email:\n      return /.+@.+/\n    case ValidationType.PhoneNumber:\n      return /([\\s.-]*[0-9][\\s.-]*){10}/\n    case ValidationType.PhoneNumberE164:\n      return /^\\+[1-9]\\d{1,14}$/\n    default:\n      return undefined\n  }\n}\n\nfunction isNotBlank(value: string) {\n  return value && value.trim().length > 0\n}\n\nexport default Input\n","// extracted by mini-css-extract-plugin\nexport var content = \"rich-datocms-content-module--content--a014f\";\nexport var embeddedIframe = \"rich-datocms-content-module--embeddedIframe--d3471\";\nexport var highlight = \"rich-datocms-content-module--highlight--ebf82\";\nexport var image = \"rich-datocms-content-module--image--e13a3\";\nexport var imageOnRight = \"rich-datocms-content-module--imageOnRight--c2c03\";\nexport var richContent = \"rich-datocms-content-module--richContent--02f35\";\nexport var textWithImage = \"rich-datocms-content-module--textWithImage--01227\";\nexport var textWithVideo = \"rich-datocms-content-module--textWithVideo--deb02\";\nexport var video = \"rich-datocms-content-module--video--60a01\";\nexport var videoOnRight = \"rich-datocms-content-module--videoOnRight--e13b9\";\nexport var videoOnly = \"rich-datocms-content-module--videoOnly--0274a\";","// extracted by mini-css-extract-plugin\nexport var line = \"schedules-search-results-transport-method-module--line--609c2\";\nexport var lineTypeList = \"schedules-search-results-transport-method-module--lineTypeList--e680b\";\nexport var lineTypeTitle = \"schedules-search-results-transport-method-module--lineTypeTitle--fc2a1\";\nexport var linesList = \"schedules-search-results-transport-method-module--linesList--7b579\";\nexport var pictogram = \"schedules-search-results-transport-method-module--pictogram--84bf4\";\nexport var transportMethodPanel = \"schedules-search-results-transport-method-module--transportMethodPanel--3faaf\";\nexport var transportMethodTitle = \"schedules-search-results-transport-method-module--transportMethodTitle--3a7b3\";","// extracted by mini-css-extract-plugin\nexport var linePanel = \"schedules-search-results-line-module--linePanel--321fe\";\nexport var linkIcon = \"schedules-search-results-line-module--linkIcon--79a25\";\nexport var pictogram = \"schedules-search-results-line-module--pictogram--585ac\";\nexport var schedule = \"schedules-search-results-line-module--schedule--ef946\";\nexport var schedulesList = \"schedules-search-results-line-module--schedulesList--41fc4\";\nexport var title = \"schedules-search-results-line-module--title--ba9a6\";","import React from \"react\"\nimport {\n  LinesListFieldsFragment,\n  SchedulesSearchLinkIconFragment,\n  SchedulesSearchModuleFieldsFragment,\n  SchedulesSearchPictogramFragment,\n} from \"../../../../graphql-types\"\nimport * as styles from \"./schedules-search-results-line.module.scss\"\nimport { ReactSVG } from \"react-svg\"\n\ntype Line = LinesListFieldsFragment\n\ntype RenderProps = {\n  line: Line\n  moduleConfiguration: SchedulesSearchModuleFieldsFragment\n}\n\nconst SchedulesSearchResultsLine: React.FC<RenderProps> = ({ line, moduleConfiguration }) => {\n  return (\n    <section className={styles.linePanel}>\n      <h5 className={styles.title}>\n        {displayImage(line.pictogram, styles.pictogram)} {line.name}\n      </h5>\n      <ul className={styles.schedulesList}>\n        {line.schedules.map(schedule => (\n          <li key={schedule.id} className={styles.schedule}>\n            {displayImage(moduleConfiguration.scheduleIcon, styles.linkIcon)}\n            <a href={(schedule.file && schedule.file.url) || schedule.link} target=\"_blank\">\n              {schedule.label}\n            </a>\n          </li>\n        ))}\n        {line.lineMap && (\n          <li key={line.id} className={styles.schedule}>\n            {displayImage(moduleConfiguration.lineMapIcon, styles.linkIcon)}\n            <a href={line.lineMap.url} download>\n              {moduleConfiguration.lineMapLinkLabel}\n            </a>\n          </li>\n        )}\n      </ul>\n    </section>\n  )\n}\n\nconst displayImage = (image: SchedulesSearchPictogramFragment | SchedulesSearchLinkIconFragment, className: string) => {\n  if (image.format === \"svg\") {\n    return (\n      <ReactSVG\n        src={image.url}\n        className={className}\n        beforeInjection={svg => svg.setAttribute(\"aria-label\", image.alt || \"\")}\n      />\n    )\n  }\n  return <img src={image.url} alt={image.alt || \"\"} className={className} aria-hidden=\"true\" />\n}\n\nexport default SchedulesSearchResultsLine\n","import React from \"react\"\nimport {\n  LinesListFieldsFragment,\n  SchedulesSearchModuleFieldsFragment,\n  SchedulesSearchTransportMethodPictogramFragment,\n  SchedulesSearchTransportMethodsFieldsFragment,\n} from \"../../../../graphql-types\"\nimport * as styles from \"./schedules-search-results-transport-method.module.scss\"\nimport SchedulesSearchResultsLine from \"../results-line/schedules-search-results-line\"\nimport { ReactSVG } from \"react-svg\"\n\ntype Line = LinesListFieldsFragment\n\ntype RenderProps = {\n  transportMethod: SchedulesSearchTransportMethodsFieldsFragment\n  lines: Line[]\n  moduleConfiguration: SchedulesSearchModuleFieldsFragment\n}\n\nconst SchedulesSearchResultsTransportMethod: React.FC<RenderProps> = ({\n  transportMethod,\n  lines,\n  moduleConfiguration,\n}) => {\n  const groupedByType = groupByLineType(lines)\n  return (\n    <section className={styles.transportMethodPanel}>\n      <h3 className={styles.transportMethodTitle}>\n        {displayImage(transportMethod.pictogram)}\n        <span>{transportMethod.name}</span>\n      </h3>\n      <ul className={styles.lineTypeList}>\n        {Array.from(groupedByType.values()).map(linesGroup => {\n          return (\n            <li key={linesGroup[0].lineType.id}>\n              <h4 className={styles.lineTypeTitle}>{linesGroup[0].lineType.label}</h4>\n              <ul className={styles.linesList}>\n                {linesGroup.map(line => (\n                  <li key={line.id} className={styles.line}>\n                    <SchedulesSearchResultsLine line={line} moduleConfiguration={moduleConfiguration} />\n                  </li>\n                ))}\n              </ul>\n            </li>\n          )\n        })}\n      </ul>\n    </section>\n  )\n}\n\nfunction groupByLineType(lines: Line[]) {\n  return lines.reduce((linesByType, line) => {\n    const existingEntries = linesByType.get(line.lineType.id) || []\n    const newEntries = existingEntries.concat(line)\n    linesByType.set(line.lineType.id, newEntries)\n    return linesByType\n  }, new Map<string, Line[]>())\n}\n\nconst displayImage = (image: SchedulesSearchTransportMethodPictogramFragment) => {\n  if (image.format === \"svg\") {\n    return (\n      <ReactSVG\n        src={image.url}\n        className={styles.pictogram}\n        beforeInjection={svg => svg.setAttribute(\"aria-label\", image.alt || \"\")}\n      />\n    )\n  }\n\n  return <img src={image.url} alt={image.alt || \"\"} className={styles.pictogram} aria-hidden=\"true\" />\n}\n\nexport default SchedulesSearchResultsTransportMethod\n","import React from \"react\"\nimport { LinesListFieldsFragment, SchedulesSearchModuleFieldsFragment } from \"../../../../graphql-types\"\nimport * as styles from \"./schedules-search-results.module.scss\"\nimport SchedulesSearchResultsTransportMethod from \"../results-transport-method/schedules-search-results-transport-method\"\n\ntype Line = LinesListFieldsFragment\ntype Municipality = LinesListFieldsFragment[\"municipalities\"][0]\ntype PointOfInterest = LinesListFieldsFragment[\"pointsOfInterest\"][0]\n\ntype RenderProps = {\n  lines: Line[]\n  selectedLine: Line | null\n  selectedMunicipality: Municipality | null\n  selectedPointOfInterest: PointOfInterest | null\n  moduleConfiguration: SchedulesSearchModuleFieldsFragment\n}\n\nconst SchedulesSearchResults: React.FC<RenderProps> = ({\n  lines,\n  selectedLine,\n  selectedMunicipality,\n  selectedPointOfInterest,\n  moduleConfiguration,\n}) => {\n  const filteredLines = lines.filter(filterMatchingLines(selectedLine, selectedMunicipality, selectedPointOfInterest))\n  const groupedByMethod = groupByTransportMethod(filteredLines)\n  if (filteredLines.length === 0) {\n    return <div className={styles.noResult}>{moduleConfiguration.noResultLabel}</div>\n  }\n  return (\n    <>\n      <p className={styles.resultsTitle} id=\"js-schedules-search-result-label\" tabIndex={-1}>\n        {moduleConfiguration.resultsLabel}\n      </p>\n      <ul className={styles.results}>\n        {Array.from(groupedByMethod.values()).map(groupLines => {\n          return (\n            <li key={groupLines[0].transportMethod.id} className={styles.result}>\n              <SchedulesSearchResultsTransportMethod\n                transportMethod={groupLines[0].transportMethod}\n                lines={groupLines}\n                moduleConfiguration={moduleConfiguration}\n              />\n            </li>\n          )\n        })}\n      </ul>\n    </>\n  )\n}\n\nfunction filterMatchingLines(\n  selectedLine: Line | null,\n  selectedMunicipality: Municipality | null,\n  selectedPointOfInterest: PointOfInterest | null\n) {\n  return line => {\n    const matchLine = !selectedLine || selectedLine.id === line.id\n    const matchMunicipality =\n      !selectedMunicipality || line.municipalities.some(municipality => municipality.id === selectedMunicipality.id)\n    const matchPointOfInterest =\n      !selectedPointOfInterest ||\n      line.pointsOfInterest.some(pointOfInterest => pointOfInterest.id === selectedPointOfInterest.id)\n\n    return matchLine && matchMunicipality && matchPointOfInterest\n  }\n}\n\nfunction groupByTransportMethod(lines: Line[]) {\n  return lines.reduce((linesByTransportMethod, line) => {\n    const existingEntries = linesByTransportMethod.get(line.transportMethod.id) || []\n    const newEntries = existingEntries.concat(line)\n    linesByTransportMethod.set(line.transportMethod.id, newEntries)\n    return linesByTransportMethod\n  }, new Map<string, Line[]>())\n}\n\nexport default SchedulesSearchResults\n","// extracted by mini-css-extract-plugin\nexport var noResult = \"schedules-search-results-module--noResult--17533\";\nexport var result = \"schedules-search-results-module--result--89ff0\";\nexport var results = \"schedules-search-results-module--results--d2e5c\";\nexport var resultsTitle = \"schedules-search-results-module--resultsTitle--32111\";","// extracted by mini-css-extract-plugin\nexport var errorMessage = \"schedules-search-form-module--errorMessage--2d9fc\";\nexport var field = \"schedules-search-form-module--field--1e7ba\";\nexport var formPart = \"schedules-search-form-module--formPart--a2583\";\nexport var image = \"schedules-search-form-module--image--7b97e\";\nexport var searchButton = \"schedules-search-form-module--searchButton--d5402\";\nexport var searchFormFields = \"schedules-search-form-module--searchFormFields--947b5\";","import React, { useEffect, useState } from \"react\"\nimport {\n  LinesListFieldsFragment,\n  SchedulesSearchFormIconFragment,\n  SchedulesSearchModuleFieldsFragment,\n} from \"../../../../graphql-types\"\nimport Autocomplete from \"../../autocomplete/autocomplete\"\nimport * as styles from \"./schedules-search-form.module.scss\"\nimport * as inputsStyles from \"../../layout/inputs.module.scss\"\nimport { ReactSVG } from \"react-svg\"\nimport { pushGtmEvent } from \"../../../gtm/interaction-event\"\n\ntype Line = LinesListFieldsFragment\ntype Municipality = LinesListFieldsFragment[\"municipalities\"][0]\ntype PointOfInterest = LinesListFieldsFragment[\"pointsOfInterest\"][0]\n\ntype RenderProps = {\n  lines: Line[]\n  moduleConfiguration: SchedulesSearchModuleFieldsFragment\n  lineValue: Line | null\n  municipalityValue: Municipality | null\n  onChange: (value: FormResult) => void\n}\n\nexport type FormResult = {\n  line: Line | null\n  municipality: Municipality | null\n  pointOfInterest: PointOfInterest | null\n}\n\nconst SchedulesSearchForm: React.FC<RenderProps> = ({\n  lines,\n  moduleConfiguration,\n  lineValue,\n  municipalityValue,\n  onChange,\n}) => {\n  const [selectedLine, setSelectedLine] = useState(null)\n  const [selectedMunicipality, setSelectedMunicipality] = useState(null)\n  const [selectedPointOfInterest, setSelectedPointOfInterest] = useState(null)\n  const [municipalityError, setMunicipalityError] = useState(false)\n  const [lineError, setLineError] = useState(false)\n\n  const linesWithSchedulesOrPlan = lines.filter(line => line.schedules.length > 0 || line.lineMap)\n\n  useEffect(() => {\n    setSelectedLine(lineValue)\n    if (selectedLine || lineValue) {\n      setLineError(false)\n    }\n  }, [lineValue])\n  useEffect(() => {\n    setSelectedMunicipality(municipalityValue)\n    if (selectedMunicipality || municipalityValue) {\n      setMunicipalityError(false)\n    }\n  }, [municipalityValue])\n\n  useEffect(() => {\n    if (selectedLine) {\n      setLineError(false)\n    }\n  }, [selectedLine])\n\n  useEffect(() => {\n    if (selectedMunicipality) {\n      setMunicipalityError(false)\n    }\n  }, [selectedMunicipality])\n\n  function searchLines(query) {\n    const filteredLines = filterLines(linesWithSchedulesOrPlan, selectedMunicipality, selectedPointOfInterest)\n    if (!selectedLine) {\n      setLineError(true)\n    }\n    return search(query, filteredLines, toLabel)\n  }\n\n  function searchMunicipalities(query) {\n    const filteredMunicipalities = filterMunicipalities(linesWithSchedulesOrPlan, selectedLine, selectedPointOfInterest)\n    if (!selectedMunicipality) {\n      setMunicipalityError(true)\n    }\n    return search(query, filteredMunicipalities, toLabel)\n  }\n\n  function searchPointsOfInterest(query) {\n    const filteredPointsOfInterest = filterPointOfInterests(\n      linesWithSchedulesOrPlan,\n      selectedLine,\n      selectedMunicipality\n    )\n    return search(query, filteredPointsOfInterest, toLabel)\n  }\n\n  function sendChange(event) {\n    pushGtmEvent(\n      \"eventga\",\n      \"Schedule Search\",\n      `${selectedLine ? selectedLine.number : \"\"}_${selectedMunicipality ? selectedMunicipality.name : \"\"}_${\n        selectedPointOfInterest ? selectedPointOfInterest.name : \"\"\n      }`,\n      \"\"\n    )\n    onChange({\n      line: selectedLine,\n      municipality: selectedMunicipality,\n      pointOfInterest: selectedPointOfInterest,\n    })\n    event.preventDefault()\n  }\n\n  return (\n    <form onSubmit={sendChange}>\n      <div className={styles.searchFormFields}>\n        {/* Lines */}\n        {filterLines(lines).length > 0 && (\n          <div className={styles.formPart}>\n            {displayImage(moduleConfiguration.linesFieldIcon)}\n            <div className={styles.field}>\n              <label htmlFor=\"linesInput\">{moduleConfiguration.linesFieldLabel}</label>\n              <Autocomplete\n                onChange={setSelectedLine}\n                suggestFunction={searchLines}\n                toLabel={toLabel}\n                id=\"linesInput\"\n                value={lineValue}\n                placeholder={moduleConfiguration.linesFieldPlaceholder}\n                title={moduleConfiguration.linesFieldPlaceholder}\n              />\n              <div className={styles.errorMessage}>{lineError ? moduleConfiguration.lineErrorMessage : null}</div>\n            </div>\n          </div>\n        )}\n\n        {/* Municipalities */}\n        {filterMunicipalities(lines).length > 0 && (\n          <div className={styles.formPart}>\n            {displayImage(moduleConfiguration.municipalitiesFieldIcon)}\n            <div className={styles.field}>\n              <label htmlFor=\"municipalitiesInput\">{moduleConfiguration.municipalitiesFieldLabel}</label>\n              <Autocomplete\n                onChange={setSelectedMunicipality}\n                suggestFunction={searchMunicipalities}\n                toLabel={toLabel}\n                id=\"municipalitiesInput\"\n                value={municipalityValue}\n                placeholder={moduleConfiguration.municipalitiesFieldPlaceholder}\n                title={moduleConfiguration.municipalitiesFieldPlaceholder}\n              />\n              <div className={styles.errorMessage}>\n                {municipalityError ? moduleConfiguration.municipalityErrorMessage : null}\n              </div>\n            </div>\n          </div>\n        )}\n\n        {/* Points of interest */}\n        {filterPointOfInterests(lines).length > 0 && (\n          <div className={styles.formPart}>\n            {displayImage(moduleConfiguration.pointsOfInterestFieldIcon)}\n            <div className={styles.field}>\n              <label htmlFor=\"pointsOfInterestInput\">{moduleConfiguration.pointsOfInterestFieldLabel}</label>\n              <Autocomplete\n                onChange={setSelectedPointOfInterest}\n                suggestFunction={searchPointsOfInterest}\n                toLabel={toLabel}\n                id=\"pointsOfInterestInput\"\n                placeholder={moduleConfiguration.pointsOfInterestFieldPlaceholder}\n                title={moduleConfiguration.pointsOfInterestFieldPlaceholder}\n              />\n            </div>\n          </div>\n        )}\n      </div>\n      <button type=\"submit\" className={inputsStyles.primaryButton + \" \" + styles.searchButton}>\n        {moduleConfiguration.submitButtonLabel}\n      </button>\n    </form>\n  )\n}\n\nconst displayImage = (image: SchedulesSearchFormIconFragment) => {\n  if (image.format === \"svg\") {\n    return (\n      <ReactSVG\n        src={image.url}\n        className={styles.image}\n        beforeInjection={svg => svg.setAttribute(\"aria-label\", image.alt || \"\")}\n      />\n    )\n  }\n\n  return <img src={image.url} alt={image.alt || \"\"} className={styles.image} aria-hidden=\"true\" />\n}\n\nfunction filterMunicipalities(\n  lines: Line[],\n  selectedLine?: Line | null,\n  selectedPointOfInterest?: PointOfInterest | null\n): Municipality[] {\n  if (selectedPointOfInterest) {\n    if (!selectedLine) {\n      return [selectedPointOfInterest.municipality]\n    }\n    return selectedLine.municipalities.filter(\n      municipality => municipality.id === selectedPointOfInterest.municipality.id\n    )\n  }\n  return Array.from(\n    lines\n      .reduce((municipalities, line) => {\n        if (selectedLine && selectedLine.id !== line.id) {\n          return municipalities\n        }\n        line.municipalities.forEach(municipality => municipalities.set(municipality.id, municipality))\n        return municipalities\n      }, new Map<string, Municipality>())\n      .values()\n  ).sort((a, b) => (a.name > b.name ? 1 : b.name > a.name ? -1 : 0))\n}\n\nfunction filterPointOfInterests(\n  lines: Line[],\n  selectedLine?: Line | null,\n  selectedMunicipality?: Municipality | null\n): PointOfInterest[] {\n  if (selectedLine) {\n    return selectedLine.pointsOfInterest.filter(pointOfInterest => {\n      return !selectedMunicipality || selectedMunicipality.id === pointOfInterest.municipality.id\n    })\n  }\n  return Array.from(\n    lines\n      .reduce((pointsOfInterest, line) => {\n        const isNotSelectedLine = selectedLine && selectedLine.id !== line.id\n        if (isNotSelectedLine) {\n          return pointsOfInterest\n        }\n        line.pointsOfInterest.forEach(pointOfInterest => {\n          const matchesSelectedMunicipality =\n            !selectedMunicipality || selectedMunicipality.id === pointOfInterest.municipality.id\n          if (matchesSelectedMunicipality) {\n            pointsOfInterest.set(pointOfInterest.id, pointOfInterest)\n          }\n        })\n        return pointsOfInterest\n      }, new Map<string, PointOfInterest>())\n      .values()\n  )\n}\n\nfunction filterLines(\n  lines: Line[],\n  selectedMunicipality?: Municipality | null,\n  selectedPointOfInterest?: PointOfInterest | null\n): Line[] {\n  return lines.filter(line => {\n    const matchesSelectedMunicipality =\n      !selectedMunicipality || line.municipalities.some(municipality => municipality.id === selectedMunicipality.id)\n    const matchesSelectedPointOfInterest =\n      !selectedPointOfInterest ||\n      line.pointsOfInterest.some(pointOfInterest => pointOfInterest.id === selectedPointOfInterest.id)\n    return matchesSelectedMunicipality && matchesSelectedPointOfInterest\n  })\n}\n\nfunction search<T>(query: string, elements: T[], toLabelFn: (element: T) => string): T[] {\n  return elements.filter(result => toLabelFn(result).toLowerCase().indexOf(query.toLowerCase()) !== -1)\n}\n\nfunction toLabel(element?: any) {\n  return element ? element.name : \"\"\n}\n\nexport default SchedulesSearchForm\n","import React, { useEffect, useState } from \"react\"\nimport { LinesListFieldsFragment, SchedulesSearchModuleFieldsFragment } from \"../../../graphql-types\"\nimport { graphql } from \"gatsby\"\nimport * as styles from \"./schedules-search.module.scss\"\nimport sanitizeHtml from \"sanitize-html\"\nimport SchedulesSearchResults from \"./results/schedules-search-results\"\nimport SchedulesSearchForm, { FormResult } from \"./form/schedules-search-form\"\nimport { StringParam, useQueryParam } from \"use-query-params\"\n\ntype Line = LinesListFieldsFragment\n\ntype RenderProps = {\n  lines: Line[]\n  label: string\n  moduleConfiguration: SchedulesSearchModuleFieldsFragment\n}\n\nconst SchedulesSearch: React.FC<RenderProps> = ({ lines, label, moduleConfiguration }) => {\n  const [lineId] = useQueryParam(\"line\", StringParam)\n  const [municipalityId] = useQueryParam(\"municipality\", StringParam)\n  const [showResults, setShowResults] = useState(false)\n  const [searchCriteria, setSearchCriteria] = useState<FormResult>({\n    line: null,\n    municipality: null,\n    pointOfInterest: null,\n  })\n  const linesWithSchedules = lines.filter(line => line.schedules.length > 0)\n  useEffect(() => {\n    if (lineId || municipalityId) {\n      setShowResults(true)\n    }\n    const matchingLine = linesWithSchedules.find(line => line.id === lineId)\n    const matchingMunicipality = linesWithSchedules.reduce(\n      (foundMunicipality, line) =>\n        foundMunicipality || line.municipalities.find(municipality => municipality.id === municipalityId),\n      null\n    )\n    setSearchCriteria({\n      ...searchCriteria,\n      line: matchingLine,\n      municipality: matchingMunicipality,\n    })\n  }, [lineId, municipalityId])\n\n  function onCriteriaChange(criteria) {\n    setShowResults(true)\n    setSearchCriteria(criteria)\n    if (typeof window !== \"undefined\") {\n      document.getElementById(\"js-schedules-search-result-label\")?.focus()\n    }\n  }\n\n  return (\n    <section aria-label={label}>\n      <div className={styles.searchForm}>\n        <h2 className={styles.title}>{moduleConfiguration.blockTitle}</h2>\n        <div\n          className={styles.description}\n          dangerouslySetInnerHTML={{\n            __html: sanitizeHtml(moduleConfiguration.description),\n          }}\n        />\n        <SchedulesSearchForm\n          lines={lines}\n          moduleConfiguration={moduleConfiguration}\n          onChange={onCriteriaChange}\n          lineValue={searchCriteria.line}\n          municipalityValue={searchCriteria.municipality}\n        />\n      </div>\n      <div className=\"results\" id=\"schedules-search-results\">\n        {showResults && (\n          <SchedulesSearchResults\n            lines={linesWithSchedules}\n            selectedLine={searchCriteria.line}\n            selectedMunicipality={searchCriteria.municipality}\n            selectedPointOfInterest={searchCriteria.pointOfInterest}\n            moduleConfiguration={moduleConfiguration}\n          />\n        )}\n      </div>\n    </section>\n  )\n}\n\nexport const fragments = graphql`\n  fragment LinesListFields on DatoCmsLine {\n    id\n    name\n    number\n    pictogram {\n      ...SchedulesSearchPictogram\n    }\n    transportMethod {\n      ...SchedulesSearchTransportMethodsFields\n    }\n    lineType {\n      id\n      label\n    }\n    schedules {\n      id\n      label\n      link\n      file {\n        url\n      }\n    }\n    pointsOfInterest {\n      id\n      name\n      municipality {\n        id\n        name\n      }\n    }\n    municipalities {\n      id\n      name\n    }\n    lineMap {\n      url\n    }\n  }\n\n  fragment SchedulesSearchTransportMethodsFields on DatoCmsTransportMethod {\n    id\n    name\n    pictogram {\n      ...SchedulesSearchTransportMethodPictogram\n    }\n  }\n\n  fragment SchedulesSearchModuleFields on DatoCmsSchedulesSearchModule {\n    blockTitle\n    description\n    linesFieldLabel\n    linesFieldPlaceholder\n    linesFieldIcon {\n      ...SchedulesSearchFormIcon\n    }\n    municipalitiesFieldLabel\n    municipalitiesFieldPlaceholder\n    municipalitiesFieldIcon {\n      ...SchedulesSearchFormIcon\n    }\n    pointsOfInterestFieldLabel\n    pointsOfInterestFieldPlaceholder\n    pointsOfInterestFieldIcon {\n      ...SchedulesSearchFormIcon\n    }\n    submitButtonLabel\n    scheduleIcon {\n      ...SchedulesSearchLinkIcon\n    }\n    lineMapIcon {\n      ...SchedulesSearchLinkIcon\n    }\n    lineMapLinkLabel\n    resultsLabel\n    noResultLabel\n    lineErrorMessage\n    municipalityErrorMessage\n  }\n\n  fragment SchedulesSearchPictogram on DatoCmsFileField {\n    alt\n    format\n    url\n  }\n\n  fragment SchedulesSearchFormIcon on DatoCmsFileField {\n    alt\n    url\n    format\n  }\n\n  fragment SchedulesSearchLinkIcon on DatoCmsFileField {\n    alt\n    url\n    format\n  }\n\n  fragment SchedulesSearchTransportMethodPictogram on DatoCmsFileField {\n    alt\n    format\n    url\n  }\n`\n\nexport default SchedulesSearch\n","// extracted by mini-css-extract-plugin\nexport var description = \"schedules-search-module--description--1ee48\";\nexport var searchForm = \"schedules-search-module--searchForm--6c2b1\";\nexport var title = \"schedules-search-module--title--f17e1\";","// extracted by mini-css-extract-plugin\nexport var capsule = \"capsule-module--capsule--4b08f\";\nexport var selected = \"capsule-module--selected--1c8ab\";","import React from \"react\"\nimport * as styles from \"./capsule.module.scss\"\n\ntype RenderProps = {\n  label: string\n  handleClick: (e: React.MouseEvent<HTMLInputElement>) => void\n  filters: string[]\n}\n\nconst Capsule: React.FC<RenderProps> = ({ label, handleClick, filters }) => {\n  const selected = filters.includes(label)\n\n  return (\n    <input\n      type=\"button\"\n      onClick={(e: React.MouseEvent<HTMLInputElement, MouseEvent>) => handleClick(e)}\n      aria-pressed={selected}\n      className={selected ? `${styles.capsule} ${styles.selected}` : `${styles.capsule}`}\n      value={label}\n    />\n  )\n}\n\nexport default Capsule\n","// extracted by mini-css-extract-plugin\nexport var transportTitle = \"transport-title-module--transportTitle--09127\";\nexport var transportTitleActionButton = \"transport-title-module--transportTitleActionButton--9d7d3\";\nexport var transportTitleContent = \"transport-title-module--transportTitleContent--12b4b\";\nexport var transportTitleDescription = \"transport-title-module--transportTitleDescription--1d942\";\nexport var transportTitleImageBox = \"transport-title-module--transportTitleImageBox--bcd67\";\nexport var transportTitleLabel = \"transport-title-module--transportTitleLabel--c0821\";\nexport var truncateContent = \"transport-title-module--truncate-content--a97e4\";\nexport var truncateOverflow = \"transport-title-module--truncate-overflow--8be3d\";","import React from \"react\"\nimport * as styles from \"./rectangular-button.module.scss\"\n\ntype RenderProps = {\n  label: string\n  redirectUrl: string\n}\n\nconst RectangularButton: React.FC<RenderProps> = ({ label, redirectUrl }) => {\n  return (\n    <a href={redirectUrl} className={styles.rectangularButton}>\n      {label}\n    </a>\n  )\n}\n\nexport default RectangularButton\n","// extracted by mini-css-extract-plugin\nexport var rectangularButton = \"rectangular-button-module--rectangularButton--e2e58\";","import React from \"react\"\nimport { ReactSVG } from \"react-svg\"\nimport * as styles from \"./transport-title.module.scss\"\nimport { TransportTitleListFieldsFragment } from \"../../../../graphql-types\"\nimport sanitizeHtml from \"sanitize-html\"\nimport { useIsMobile } from \"../../../hooks\"\nimport RectangularButton from \"../rectangular-button/rectangular-button\"\n\ntype RenderProps = {\n  transportTitleData: TransportTitleListFieldsFragment\n}\n\nconst TransportTitle: React.FC<RenderProps> = ({ transportTitleData }) => {\n  const isMobile = useIsMobile()\n  const TEXT_MAX_LENGTH: number = isMobile ? 335 : 414\n  const isEllispisNeeded: boolean =\n    transportTitleData.description && transportTitleData.description.length > TEXT_MAX_LENGTH ? true : false\n\n  return (\n    <div className={styles.transportTitle}>\n      <div className={styles.transportTitleLabel}>{transportTitleData.title}</div>\n      <div className={styles.transportTitleContent}>\n        {transportTitleData.picture && transportTitleData.picture.url ? (\n          <div className={styles.transportTitleImageBox}>\n            {transportTitleData.picture.format == \"svg\" ? (\n              <ReactSVG\n                src={transportTitleData.picture.url}\n                beforeInjection={svg => svg.setAttribute(\"aria-label\", transportTitleData.picture.alt || \"\")}\n              />\n            ) : (\n              <img src={transportTitleData.picture.url} alt={transportTitleData.picture.alt || \"\"} />\n            )}\n          </div>\n        ) : null}\n        <div className={styles.transportTitleDescription}>\n          <div\n            className={\n              isEllispisNeeded ? `${styles.truncateContent} ${styles.truncateOverflow}` : `${styles.truncateContent}`\n            }\n            title={transportTitleData.description}\n          >\n            <p\n              dangerouslySetInnerHTML={{\n                __html: sanitizeHtml(transportTitleData.description),\n              }}\n            ></p>\n          </div>\n          <div className={styles.transportTitleActionButton}>\n            {transportTitleData.redirectionUrl ? (\n              <RectangularButton\n                label={transportTitleData.redirectionLabel}\n                redirectUrl={transportTitleData.redirectionUrl}\n              ></RectangularButton>\n            ) : null}\n          </div>\n        </div>\n      </div>\n    </div>\n  )\n}\n\nexport default TransportTitle\n","import React, { useEffect, useState } from \"react\"\nimport { graphql } from \"gatsby\"\nimport {\n  DatoCmsCriterionList,\n  DatoCmsSearchCriterion,\n  TransportTitleListFieldsFragment,\n  TransportTitleSearchModuleConfigFieldsFragment,\n} from \"../../../graphql-types\"\nimport * as styles from \"./transport-title-search.module.scss\"\nimport { useIsMobile } from \"../../hooks\"\nimport Capsule from \"./capsule/capsule\"\nimport TransportTitle from \"./transport-title/transport-title\"\nimport searchIcon from \"../../../static/images/search.png\"\n\ntype RenderProps = {\n  label: string\n  transportTitleSearchModuleConfig: TransportTitleSearchModuleConfigFieldsFragment\n  transportTitleSearchData: TransportTitleListFieldsFragment[]\n}\n\nconst TransportTitleSearch: React.FC<RenderProps> = ({\n  label,\n  transportTitleSearchData,\n  transportTitleSearchModuleConfig,\n}) => {\n  const isMobile = useIsMobile()\n  const transportTitles: TransportTitleListFieldsFragment[] = transportTitleSearchData\n  const [filters, setFilters] = useState<string[]>([])\n  const [filteredTransportTitles, setFilteredTransportTitles] = useState(transportTitles)\n\n  const buildTransportTitleCards = () => (\n    <div className={styles.transportTitles}>\n      {filteredTransportTitles.map((transportTitle: TransportTitleListFieldsFragment) => (\n        <div key={transportTitle.id} className={styles.transportTitle}>\n          <TransportTitle transportTitleData={transportTitle} />\n        </div>\n      ))}\n    </div>\n  )\n\n  const updateFilters = (criterion: string, criterionGroup: DatoCmsCriterionList) => {\n    if (!filters.includes(criterion)) {\n      const criterionTitles = criterionGroup.criterion.map(item => item.title)\n      const filteredArray = filters.filter(item => !criterionTitles.includes(item))\n      setFilters([...filteredArray, criterion])\n    } else {\n      const removeSelectedFilter = filters.filter(item => item !== criterion)\n      setFilters(removeSelectedFilter)\n    }\n  }\n\n  const updateTransportTitles = (searchFilters: string[]) => {\n    const newTransportTitles = transportTitles.filter((transportTitle: TransportTitleListFieldsFragment) => {\n      const transportTitleCriteria: string[] = transportTitle.searchCriterion.map((item: DatoCmsSearchCriterion) => {\n        return item.title\n      })\n      return searchFilters.every((criterion: string) => transportTitleCriteria.includes(criterion))\n    })\n    setFilteredTransportTitles(newTransportTitles)\n  }\n\n  useEffect(() => {\n    updateTransportTitles(filters)\n  }, [filters])\n\n  return (\n    <>\n      <div className={styles.transportTitleSearch}>\n        {!isMobile && (\n          <div className={styles.transportTitleSearchBanner}>\n            <img className={styles.searchIcon} src={searchIcon} alt=\"Search icon\" />\n            {label}\n          </div>\n        )}\n        <div className={styles.transportTitlesCriteria}>\n          {transportTitleSearchModuleConfig.searchCriterionList.map((criterionGroup: DatoCmsCriterionList, index) => (\n            <div className={styles.searchSection} key={index}>\n              <div className={styles.searchSectionLabel}>{criterionGroup.label}</div>\n              <div className={styles.searchSectionCapsules}>\n                {criterionGroup.criterion.map((criterion: DatoCmsSearchCriterion, idx) => (\n                  <Capsule\n                    key={idx}\n                    label={criterion.title}\n                    handleClick={(e: React.MouseEvent<HTMLInputElement>) =>\n                      updateFilters(e.currentTarget.value, criterionGroup)\n                    }\n                    filters={filters}\n                  />\n                ))}\n              </div>\n            </div>\n          ))}\n          {!isMobile && filteredTransportTitles && buildTransportTitleCards()}\n        </div>\n      </div>\n      {isMobile && filteredTransportTitles && buildTransportTitleCards()}\n    </>\n  )\n}\n\nexport const fragments = graphql`\n  fragment TransportTitleSearchModuleConfigFields on DatoCmsTitleAndPrice {\n    searchCriterionList {\n      id\n      label\n      criterion {\n        id\n        title\n      }\n    }\n  }\n\n  fragment TransportTitleListFields on DatoCmsTransportTitle {\n    __typename\n    id\n    title\n    description\n    redirectionUrl\n    redirectionLabel\n    picture {\n      format\n      url\n      alt\n    }\n    searchCriterion {\n      title\n      id\n    }\n    position\n  }\n`\n\nexport default TransportTitleSearch\n","// extracted by mini-css-extract-plugin\nexport var searchIcon = \"transport-title-search-module--searchIcon--6d9c0\";\nexport var searchSection = \"transport-title-search-module--searchSection--903e1\";\nexport var searchSectionCapsules = \"transport-title-search-module--searchSectionCapsules--acf23\";\nexport var searchSectionLabel = \"transport-title-search-module--searchSectionLabel--b3064\";\nexport var transportTitle = \"transport-title-search-module--transportTitle--108bb\";\nexport var transportTitleSearch = \"transport-title-search-module--transportTitleSearch--c51c8\";\nexport var transportTitleSearchBanner = \"transport-title-search-module--transportTitleSearchBanner--333b5\";\nexport var transportTitles = \"transport-title-search-module--transportTitles--8e722\";\nexport var transportTitlesCriteria = \"transport-title-search-module--transportTitlesCriteria--b7da8\";","export default \"data:image/png;base64,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\"","// extracted by mini-css-extract-plugin\nexport var image = \"ticket-office-search-result-module--image--a9b13\";\nexport var infos = \"ticket-office-search-result-module--infos--b4142\";\nexport var label = \"ticket-office-search-result-module--label--b53bf\";\nexport var name = \"ticket-office-search-result-module--name--802be\";\nexport var wrapper = \"ticket-office-search-result-module--wrapper--2d10f\";","import React from \"react\"\nimport { ReactSVG } from \"react-svg\"\nimport {\n  TicketOfficeFormIconFragment,\n  TicketOfficeSearchFieldsFragment,\n  TicketOfficeSearchModuleConfigurationFieldsFragment,\n} from \"../../../../graphql-types\"\nimport * as styles from \"./ticket-office-search-result.module.scss\"\nimport Ticket from \"../../../../static/images/ticket.svg\"\n\ntype RenderProps = {\n  ticketOffice: TicketOfficeSearchFieldsFragment\n  moduleConfiguration: TicketOfficeSearchModuleConfigurationFieldsFragment\n}\n\nconst TicketOfficeSearchResult: React.FC<RenderProps> = ({ ticketOffice, moduleConfiguration }) => {\n  const displayImage = (image: TicketOfficeFormIconFragment) => {\n    if (image.format === \"svg\") {\n      return (\n        <ReactSVG\n          src={image.url}\n          className={styles.image}\n          beforeInjection={svg => svg.setAttribute(\"aria-label\", image.alt || \"\")}\n        />\n      )\n    }\n\n    return <img src={image.url} className={styles.image} alt={image.alt || \"\"} aria-hidden=\"true\" />\n  }\n\n  return (\n    <section>\n      <h4 className={styles.name}>\n        {ticketOffice.picture && displayImage(ticketOffice.picture)}\n        <span>{ticketOffice.name}</span>\n      </h4>\n      <div className={styles.infos}>\n        <div className={styles.wrapper}>\n          <h5 className={styles.label}>\n            {displayImage(moduleConfiguration.addressIcon)}\n            <span>{moduleConfiguration.addressLabel}</span>\n          </h5>\n          <p>\n            {ticketOffice.address}\n            <br />\n            {ticketOffice.zipcode} {ticketOffice.municipality.name}\n          </p>\n        </div>\n        <div className={styles.wrapper}>\n          <h5 className={styles.label}>\n            {displayImage(moduleConfiguration.contactIcon)}\n            <span>{moduleConfiguration.contactLabel}</span>\n          </h5>\n          <p>\n            {ticketOffice.email}\n            {ticketOffice.email && ticketOffice.phoneNumber && <br />}\n            {ticketOffice.phoneNumber}\n          </p>\n        </div>\n        {ticketOffice.extraFields.length > 0 && (\n          <div className={styles.wrapper}>\n            <h5 className={styles.label}>\n              <ReactSVG\n                src={Ticket}\n                className={styles.image}\n                beforeInjection={svg => svg.setAttribute(\"aria-label\", \"ticket\")}\n              />\n              <span>{ticketOffice.extraFields[0].title}</span>\n            </h5>\n            <p>{ticketOffice.extraFields[0].other}</p>\n          </div>\n        )}\n      </div>\n    </section>\n  )\n}\n\nexport default TicketOfficeSearchResult\n","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjUiIGhlaWdodD0iMjMiIHZpZXdCb3g9IjAgMCAyNSAyMyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE5LjkxMzcgMTMuNDU3MUgxOC42NDg2TDE0LjkxNiAxNi45NDg5SDIwLjA0NjhWMTYuOTI3SDIwLjEwNzRWMTIuMjMwOEwxOS45MTM3IDEyLjQyODhWMTMuNDU3MVoiIGZpbGw9IiMwMDVGN0QiLz4KPHBhdGggZD0iTTE5LjIxODUgMEw1LjI3OTkxIDEzLjAzOTRMMTEuMDYxMyAyMC43MjA3TDI1IDcuNjgxM0wxOS4yMTg1IDBaTTkuMDgzNTEgMTcuNjQ1M0w3LjY1MzEyIDE1Ljc0NDhMMjEuMTk2MyAzLjA3NTQ0TDIyLjYyNjcgNC45NzU5TDkuMDgzNTEgMTcuNjQ1M1oiIGZpbGw9IiMwMDVGN0QiLz4KPHBhdGggZD0iTTYuNDg0NDggMTEuMTc3N0gzLjUzOTEzVjguNzA2N0g5LjEyNTkxTDEyLjg1ODQgNS4yMTQ5N0MxMi45NDA3IDUuMzA2NjIgNC43MjYzIDUuMjM5NjggMy41MzkxMyA1LjIyOTUxVjUuMjE5M0gzLjM0NTQ2VjE0LjY0NzZIMy4zOTE4OVYxNC42NDk5SDUuNzYxNjZMNC41MjY3NCAxMy4wMDkyTDYuNDg0NDggMTEuMTc3N1oiIGZpbGw9IiMwMDVGN0QiLz4KPC9zdmc+Cg==\"","import React from \"react\"\nimport {\n  TicketOfficeSearchFieldsFragment,\n  TicketOfficeSearchModuleConfigurationFieldsFragment,\n} from \"../../../../graphql-types\"\nimport * as styles from \"./ticket-office-search-results.module.scss\"\nimport TicketOfficeSearchResult from \"../result/ticket-office-search-result\"\n\ntype TicketOffice = TicketOfficeSearchFieldsFragment\n\ntype RenderProps = {\n  ticketOffices: TicketOffice[]\n  moduleConfiguration: TicketOfficeSearchModuleConfigurationFieldsFragment\n}\n\nconst TicketOfficeSearchResults: React.FC<RenderProps> = ({ ticketOffices, moduleConfiguration }) => {\n  return (\n    <ul className={styles.results}>\n      {ticketOffices.map(ticketOffice => {\n        return (\n          <li key={ticketOffice.id} className={styles.result}>\n            <TicketOfficeSearchResult ticketOffice={ticketOffice} moduleConfiguration={moduleConfiguration} />\n          </li>\n        )\n      })}\n    </ul>\n  )\n}\n\nexport default TicketOfficeSearchResults\n","// extracted by mini-css-extract-plugin\nexport var result = \"ticket-office-search-results-module--result--cd080\";\nexport var results = \"ticket-office-search-results-module--results--aa8f7\";","// extracted by mini-css-extract-plugin\nexport var categories = \"ticket-office-search-form-module--categories--a1552\";\nexport var category = \"ticket-office-search-form-module--category--27462\";\nexport var field = \"ticket-office-search-form-module--field--7ee47\";\nexport var formPart = \"ticket-office-search-form-module--formPart--c3ea7\";\nexport var image = \"ticket-office-search-form-module--image--2ce4c\";\nexport var label = \"ticket-office-search-form-module--label--85d93\";\nexport var searchFormFields = \"ticket-office-search-form-module--searchFormFields--7be7e\";","import React, { useMemo, useState } from \"react\"\nimport {\n  TicketOfficeFormIconFragment,\n  TicketOfficeSearchFieldsFragment,\n  TicketOfficeSearchModuleConfigurationFieldsFragment,\n} from \"../../../../graphql-types\"\nimport Autocomplete from \"../../autocomplete/autocomplete\"\nimport * as styles from \"./ticket-office-search-form.module.scss\"\nimport { ReactSVG } from \"react-svg\"\nimport Capsule from \"../../transport-title-search/capsule/capsule\"\n\ntype TicketOffice = TicketOfficeSearchFieldsFragment\ntype Municipality = TicketOffice[\"municipality\"]\ntype Category = TicketOffice[\"category\"]\n\ntype RenderProps = {\n  ticketOffices: TicketOffice[]\n  moduleConfiguration: TicketOfficeSearchModuleConfigurationFieldsFragment\n  onChange: (value: FormResult) => void\n}\n\nexport type FormResult = {\n  municipality: Municipality | null\n  categories: Category[]\n}\n\nconst TicketOfficeSearchForm: React.FC<RenderProps> = ({ ticketOffices, moduleConfiguration, onChange }) => {\n  const [selectedMunicipality, setSelectedMunicipality] = useState(null)\n\n  const municipalities = useMemo(() => extractMunicipalities(ticketOffices), [ticketOffices])\n\n  const categories = useMemo(() => extractCategories(ticketOffices), [ticketOffices])\n\n  const [selectedCategories, setSelectedCategories] = useState(categories)\n\n  function onSelectedMunicipality(municipality) {\n    setSelectedMunicipality(municipality)\n    onChange({ municipality, categories: selectedCategories })\n  }\n\n  function onToggleCategory(categoryToToggle) {\n    let newCategories\n    if (selectedCategories.some(category => category.id === categoryToToggle.id)) {\n      newCategories = selectedCategories.filter(category => category.id !== categoryToToggle.id)\n    } else {\n      newCategories = [...selectedCategories, categoryToToggle]\n    }\n    setSelectedCategories(newCategories)\n    onChange({ municipality: selectedMunicipality, categories: newCategories })\n  }\n\n  return (\n    <form>\n      <div className={styles.searchFormFields}>\n        {/* Municipalities */}\n        <div className={styles.formPart}>\n          <div className={styles.field}>\n            <label htmlFor=\"municipalityInput\" className={styles.label}>\n              {displayImage(moduleConfiguration.municipalityIcon)}\n              <span>{moduleConfiguration.municipalityLabel}</span>\n            </label>\n            <Autocomplete\n              onChange={onSelectedMunicipality}\n              suggestFunction={query => searchMunicipalities(query, municipalities)}\n              toLabel={municipality => (municipality ? municipality.name : \"\")}\n              id=\"municipalityInput\"\n              placeholder={moduleConfiguration.municipalityPlaceholder}\n              title={moduleConfiguration.municipalityPlaceholder}\n            />\n          </div>\n        </div>\n\n        {/* Categories */}\n        <div className={styles.formPart}>\n          <fieldset className={styles.field}>\n            <legend className={styles.label}>\n              {displayImage(moduleConfiguration.categoryIcon)}\n              <span>{moduleConfiguration.categoryLabel}</span>\n            </legend>\n            <ul className={styles.categories}>\n              {categories.map(category => (\n                <li key={category.id} className={styles.category}>\n                  <Capsule\n                    label={category.name}\n                    handleClick={() => onToggleCategory(category)}\n                    filters={selectedCategories.map(item => item.name)}\n                  />\n                </li>\n              ))}\n            </ul>\n          </fieldset>\n        </div>\n      </div>\n    </form>\n  )\n}\n\nfunction extractMunicipalities(ticketOffices: TicketOffice[]): Municipality[] {\n  return Array.from(\n    ticketOffices\n      .reduce((municipalitiesMap, ticketOffice) => {\n        municipalitiesMap.set(ticketOffice.municipality.id, ticketOffice.municipality)\n        return municipalitiesMap\n      }, new Map<string, Municipality>())\n      .values()\n  )\n}\n\nfunction extractCategories(ticketOffices: TicketOffice[]): Category[] {\n  return Array.from(\n    ticketOffices\n      .reduce((categoriesMap, ticketOffice) => {\n        categoriesMap.set(ticketOffice.category.id, ticketOffice.category)\n        return categoriesMap\n      }, new Map<string, Category>())\n      .values()\n  )\n}\n\nconst displayImage = (image: TicketOfficeFormIconFragment) => {\n  if (image.format === \"svg\") {\n    return (\n      <ReactSVG\n        src={image.url}\n        className={styles.image}\n        beforeInjection={svg => svg.setAttribute(\"aria-label\", image.alt || \"\")}\n      />\n    )\n  }\n\n  return <img src={image.url} className={styles.image} alt={image.alt || \"\"} aria-hidden=\"true\" />\n}\n\nfunction searchMunicipalities(query: string, municipalities: Municipality[]): Municipality[] {\n  if (!query || query == undefined) {\n    query = \"\"\n  }\n  return municipalities.filter(municipality => municipality.name.toLowerCase().indexOf(query.toLowerCase()) !== -1)\n}\n\nexport default TicketOfficeSearchForm\n","// extracted by mini-css-extract-plugin\nexport var content = \"ticket-office-search-map-module--content--88a2e\";\nexport var map = \"ticket-office-search-map-module--map--3f0f9\";\nexport var ticketOfficePopup = \"ticket-office-search-map-module--ticketOfficePopup--91ac2\";\nexport var title = \"ticket-office-search-map-module--title--23928\";","import React, { useEffect, useLayoutEffect, useRef, useState } from \"react\"\nimport {\n  TicketOfficeSearchFieldsFragment,\n  TicketOfficeSearchModuleConfigurationFieldsFragment,\n} from \"../../../../graphql-types\"\nimport * as styles from \"./ticket-office-search-map.module.scss\"\nimport config from \"../../../../config\"\n\nimport * as mapboxgl from \"mapbox-gl\"\n// fix issue with loading mapboxgl on production, see https://github.com/mapbox/mapbox-gl-js/issues/10173\n// eslint-disable-next-line import/no-webpack-loader-syntax\nmapboxgl.workerClass = require(\"worker-loader!mapbox-gl/dist/mapbox-gl-csp-worker\").default\n\ntype TicketOffice = TicketOfficeSearchFieldsFragment\ntype Municipality = TicketOffice[\"municipality\"]\n\ntype RenderProps = {\n  ticketOffices: TicketOffice[]\n  mapboxToken: string\n  moduleConfiguration: TicketOfficeSearchModuleConfigurationFieldsFragment\n  selectedMunicipality: Municipality | null\n}\n\nconst TicketOfficeSearchMap: React.FC<RenderProps> = ({\n  ticketOffices,\n  mapboxToken,\n  moduleConfiguration,\n  selectedMunicipality,\n}) => {\n  const [map, setMap] = useState(null)\n  const [previousMunicipality, setPreviousMunicipality] = useState(null)\n  const [markers, setMarkers] = useState<mapboxgl.Marker[]>([])\n\n  const mapRef = useRef()\n\n  useLayoutEffect(() => {\n    mapboxgl.accessToken = mapboxToken\n    const mapInit = new mapboxgl.Map({\n      container: mapRef.current,\n      style: \"mapbox://styles/mapbox/streets-v11\",\n      center: [moduleConfiguration.mapCenter.longitude, moduleConfiguration.mapCenter.latitude],\n      zoom: 8,\n    })\n    setMap(mapInit)\n  }, [])\n\n  useEffect(() => {\n    if (!map) {\n      return\n    }\n    const newMarkers = updateTicketOfficeMarkers(map, markers, ticketOffices)\n    setMarkers(newMarkers)\n  }, [map, ticketOffices])\n\n  useEffect(() => {\n    if (map && selectedMunicipality && (!previousMunicipality || selectedMunicipality.id !== previousMunicipality.id)) {\n      centerMapToMunicipality(map, selectedMunicipality)\n    }\n    setPreviousMunicipality(selectedMunicipality)\n  }, [selectedMunicipality])\n\n  return <div ref={mapRef} className={styles.map} aria-hidden=\"true\" />\n}\n\nfunction centerMapToMunicipality(map: mapboxgl.Map, municipality: Municipality) {\n  map.jumpTo({\n    center: [municipality.location.longitude, municipality.location.latitude],\n    zoom: 10,\n  })\n}\n\nfunction updateTicketOfficeMarkers(\n  map: mapboxgl.Map,\n  previousMarkers: mapboxgl.Marker[],\n  ticketOffices: TicketOffice[]\n): mapboxgl.Marker[] {\n  const primaryColor = `rgb(${config.primary_color.red}, ${config.primary_color.green}, ${config.primary_color.blue})`\n  previousMarkers.forEach(marker => marker.remove())\n  return ticketOffices.map(ticketOffice => {\n    const markerElement = document.createElement(\"img\")\n    markerElement.src = ticketOffice.category.pictogram.url\n    markerElement.alt = ticketOffice.name\n    markerElement.style.width = \"30px\"\n    markerElement.style.height = \"30px\"\n    const popupContent = `<aside class=\"${styles.ticketOfficePopup}\">\n  <h5 class=\"${styles.title}\">${ticketOffice.name}</h5>\n  <p class=\"${styles.content}\">\n    ${ticketOffice.address}\n    <br>\n    ${ticketOffice.municipality.name}\n    ${ticketOffice.email ? \"<br>\" + ticketOffice.email : \"\"}\n    ${ticketOffice.phoneNumber ? \"<br>\" + ticketOffice.phoneNumber : \"\"}\n  </p>\n</aside>\n`\n    const popup = new mapboxgl.Popup({ maxWidth: \"none\" }).setHTML(popupContent)\n    return new mapboxgl.Marker({ color: primaryColor, element: markerElement })\n      .setLngLat([ticketOffice.location.longitude, ticketOffice.location.latitude])\n      .setPopup(popup)\n      .addTo(map)\n  })\n}\n\nexport default TicketOfficeSearchMap\n","import React, { useMemo, useState } from \"react\"\nimport {\n  TicketOfficeSearchFieldsFragment,\n  TicketOfficeSearchModuleConfigurationFieldsFragment,\n} from \"../../../graphql-types\"\nimport { graphql } from \"gatsby\"\nimport * as styles from \"./ticket-office-search.module.scss\"\nimport \"mapbox-gl/dist/mapbox-gl.css\"\nimport TicketOfficeSearchResults from \"./results/ticket-office-search-results\"\nimport TicketOfficeSearchForm, { FormResult } from \"./form/ticket-office-search-form\"\nimport TicketOfficeSearchMap from \"./map/ticket-office-search-map\"\n\ntype TicketOffice = TicketOfficeSearchFieldsFragment\ntype Municipality = TicketOffice[\"municipality\"]\ntype Category = TicketOffice[\"category\"]\n\ntype RenderProps = {\n  ticketOffices: TicketOffice[]\n  label: string\n  moduleConfiguration: TicketOfficeSearchModuleConfigurationFieldsFragment\n  mapboxToken: string\n}\n\nconst TicketOfficeSearch: React.FC<RenderProps> = ({ label, moduleConfiguration, ticketOffices, mapboxToken }) => {\n  const [searchCriteria, setSearchCriteria] = useState<FormResult>({\n    municipality: null,\n    categories: [],\n  })\n\n  const filteredTicketOffices = useMemo(\n    () => ticketOffices.filter(filterMatchingTicketOffice(searchCriteria.municipality, searchCriteria.categories)),\n    [searchCriteria, ticketOffices]\n  )\n\n  return (\n    <section aria-label={label} className={styles.ticketOfficeSearch}>\n      <div className={styles.searchForm}>\n        <h2 className={styles.title}>{moduleConfiguration.title}</h2>\n        <TicketOfficeSearchForm\n          ticketOffices={ticketOffices}\n          moduleConfiguration={moduleConfiguration}\n          onChange={setSearchCriteria}\n        />\n      </div>\n\n      <div className={styles.ticketOfficeList} id=\"schedules-search-results\" tabIndex={0}>\n        <TicketOfficeSearchResults ticketOffices={filteredTicketOffices} moduleConfiguration={moduleConfiguration} />\n      </div>\n\n      <div className={styles.map}>\n        <TicketOfficeSearchMap\n          mapboxToken={mapboxToken}\n          ticketOffices={filteredTicketOffices}\n          moduleConfiguration={moduleConfiguration}\n          selectedMunicipality={searchCriteria.municipality}\n        />\n      </div>\n    </section>\n  )\n}\n\nfunction filterMatchingTicketOffice(selectedMunicipality: Municipality | null, selectedCategories: Category[]) {\n  return ticketOffice => {\n    const matchMunicipality = !selectedMunicipality || ticketOffice.municipality.id === selectedMunicipality.id\n    const matchCategories =\n      selectedCategories.length === 0 || selectedCategories.some(category => category.id === ticketOffice.category.id)\n\n    return matchMunicipality && matchCategories\n  }\n}\n\nexport const fragments = graphql`\n  fragment TicketOfficeSearchMapConfigurationFields on DatoCmsGlobalConfiguration {\n    mapboxToken\n  }\n\n  fragment TicketOfficeSearchFields on DatoCmsTicketOffice {\n    id\n    name\n    category {\n      id\n      name\n      pictogram {\n        url\n      }\n    }\n    email\n    location {\n      latitude\n      longitude\n    }\n    municipality {\n      ...TicketOfficeSearchMunicipalitiesFields\n    }\n    extraFields {\n      ... on DatoCmsExtraFieldsBlock {\n        title\n        other\n      }\n    }\n    address\n    zipcode\n    phoneNumber\n    picture {\n      ...TicketOfficePicture\n    }\n  }\n\n  fragment TicketOfficeSearchMunicipalitiesFields on DatoCmsMunicipality {\n    id\n    name\n    location {\n      latitude\n      longitude\n    }\n  }\n\n  fragment TicketOfficeSearchModuleConfigurationFields on DatoCmsTicketOfficeModule {\n    title\n    municipalityLabel\n    municipalityPlaceholder\n    municipalityIcon {\n      ...TicketOfficeFormIcon\n    }\n    categoryLabel\n    categoryIcon {\n      ...TicketOfficeFormIcon\n    }\n    addressLabel\n    addressIcon {\n      ...TicketOfficeAddressContactIcon\n    }\n    contactLabel\n    contactIcon {\n      ...TicketOfficeAddressContactIcon\n    }\n    mapCenter {\n      latitude\n      longitude\n    }\n  }\n\n  fragment TicketOfficePicture on DatoCmsFileField {\n    alt\n    format\n    url\n  }\n\n  fragment TicketOfficeFormIcon on DatoCmsFileField {\n    alt\n    format\n    url\n  }\n\n  fragment TicketOfficeAddressContactIcon on DatoCmsFileField {\n    alt\n    format\n    url\n  }\n`\n\nexport default TicketOfficeSearch\n","var _a, _b;\nexport var blockquoteNodeType = 'blockquote';\nexport var blockNodeType = 'block';\nexport var codeNodeType = 'code';\nexport var headingNodeType = 'heading';\nexport var inlineItemNodeType = 'inlineItem';\nexport var itemLinkNodeType = 'itemLink';\nexport var linkNodeType = 'link';\nexport var listItemNodeType = 'listItem';\nexport var listNodeType = 'list';\nexport var paragraphNodeType = 'paragraph';\nexport var rootNodeType = 'root';\nexport var spanNodeType = 'span';\nexport var thematicBreakNodeType = 'thematicBreak';\nexport var allowedNodeTypes = [blockquoteNodeType, blockNodeType, codeNodeType, headingNodeType, inlineItemNodeType, itemLinkNodeType, linkNodeType, listItemNodeType, listNodeType, paragraphNodeType, rootNodeType, spanNodeType, thematicBreakNodeType];\nexport var allowedChildren = (_a = {}, _a[blockquoteNodeType] = [paragraphNodeType], _a[blockNodeType] = [], _a[codeNodeType] = [], _a[headingNodeType] = 'inlineNodes', _a[inlineItemNodeType] = [], _a[itemLinkNodeType] = 'inlineNodes', _a[linkNodeType] = 'inlineNodes', _a[listItemNodeType] = [paragraphNodeType, listNodeType], _a[listNodeType] = [listItemNodeType], _a[paragraphNodeType] = 'inlineNodes', _a[rootNodeType] = [blockquoteNodeType, codeNodeType, listNodeType, paragraphNodeType, headingNodeType, blockNodeType, thematicBreakNodeType], _a[spanNodeType] = [], _a[thematicBreakNodeType] = [], _a);\nexport var inlineNodeTypes = [spanNodeType, linkNodeType, itemLinkNodeType, inlineItemNodeType];\nexport var allowedAttributes = (_b = {}, _b[blockquoteNodeType] = ['children', 'attribution'], _b[blockNodeType] = ['item'], _b[codeNodeType] = ['language', 'highlight', 'code'], _b[headingNodeType] = ['level', 'children', 'style'], _b[inlineItemNodeType] = ['item'], _b[itemLinkNodeType] = ['item', 'children', 'meta'], _b[linkNodeType] = ['url', 'children', 'meta'], _b[listItemNodeType] = ['children'], _b[listNodeType] = ['style', 'children'], _b[paragraphNodeType] = ['children', 'style'], _b[rootNodeType] = ['children'], _b[spanNodeType] = ['value', 'marks'], _b[thematicBreakNodeType] = [], _b);\nexport var defaultMarks = ['strong', 'code', 'emphasis', 'underline', 'strikethrough', 'highlight'];","// extracted by mini-css-extract-plugin\nexport var description = \"ticket-office-search-module--description--b8ddd\";\nexport var map = \"ticket-office-search-module--map--cdbe0\";\nexport var searchForm = \"ticket-office-search-module--searchForm--26ef3\";\nexport var ticketOfficeList = \"ticket-office-search-module--ticketOfficeList--74d15\";\nexport var ticketOfficeSearch = \"ticket-office-search-module--ticketOfficeSearch--0602e\";\nexport var title = \"ticket-office-search-module--title--10285\";","import React from \"react\"\nimport { ItineraryModuleConfigurationFieldsFragment } from \"../../../graphql-types\"\nimport { graphql } from \"gatsby\"\nimport * as styles from \"./itinerary-module.module.scss\"\n\ntype RenderProps = {\n  label: string\n  moduleConfiguration: ItineraryModuleConfigurationFieldsFragment\n}\n\nconst ItineraryModule: React.FC<RenderProps> = ({ label, moduleConfiguration }) => {\n  return (\n    <iframe\n      className={styles.iframe}\n      title={label}\n      src={moduleConfiguration.iframeLink}\n      sandbox=\"allow-forms allow-popups allow-pointer-lock allow-same-origin allow-scripts allow-downloads\"\n    />\n  )\n}\n\nexport const fragments = graphql`\n  fragment ItineraryModuleConfigurationFields on DatoCmsItineraryModuleConfiguration {\n    iframeLink\n  }\n`\n\nexport default ItineraryModule\n","// extracted by mini-css-extract-plugin\nexport var iframe = \"itinerary-module-module--iframe--9a9dd\";","import React from \"react\"\nimport { NextDeparturesModuleConfigurationFieldsFragment } from \"../../../graphql-types\"\nimport { graphql } from \"gatsby\"\nimport * as styles from \"./next-departures-module.module.scss\"\n\ntype RenderProps = {\n  label: string\n  moduleConfiguration: NextDeparturesModuleConfigurationFieldsFragment\n}\n\nconst NextDeparturesModule: React.FC<RenderProps> = ({ label, moduleConfiguration }) => {\n  return (\n    <section className={styles.nextDeparturesModule}>\n      <iframe\n        className={styles.iframe}\n        title={label}\n        src={moduleConfiguration.iframeLink + (typeof window !== \"undefined\" ? window.location.search : \"\")}\n        sandbox=\"allow-forms allow-popups allow-pointer-lock allow-same-origin allow-scripts allow-downloads\"\n      />\n    </section>\n  )\n}\n\nexport const fragments = graphql`\n  fragment NextDeparturesModuleConfigurationFields on DatoCmsNextDeparturesModuleConfiguration {\n    iframeLink\n  }\n`\n\nexport default NextDeparturesModule\n","// extracted by mini-css-extract-plugin\nexport var iframe = \"next-departures-module-module--iframe--a47da\";\nexport var nextDeparturesModule = \"next-departures-module-module--nextDeparturesModule--afb69\";","// extracted by mini-css-extract-plugin\nexport var container = \"info-traffic-module--container--a33dd\";\nexport var image = \"info-traffic-module--image--30352\";\nexport var line = \"info-traffic-module--line--ce5af\";\nexport var lineDivider = \"info-traffic-module--lineDivider--00619\";\nexport var linePicto = \"info-traffic-module--linePicto--6bf3e\";\nexport var linkNoStyle = \"info-traffic-module--linkNoStyle--89c5a\";\nexport var pictoBox = \"info-traffic-module--pictoBox--146ed\";\nexport var pictoBoxTop = \"info-traffic-module--pictoBoxTop--977a1\";\nexport var pictoBoxTraffic = \"info-traffic-module--pictoBoxTraffic--e34e0\";\nexport var svgImage = \"info-traffic-module--svgImage--3ce7c\";\nexport var title = \"info-traffic-module--title--4e2e4\";\nexport var trafficContainer = \"info-traffic-module--trafficContainer--2e1b0\";","import React, { useEffect, useState } from \"react\"\nimport { useQuerySubscription } from \"react-datocms\"\nimport { graphql, useStaticQuery } from \"gatsby\"\nimport { InfoTrafficFieldsFragment } from \"../../../graphql-types\"\nimport * as config from \"../../../config.js\"\nimport * as styles from \"./info-traffic.module.scss\"\nimport sanitizeHtml from \"sanitize-html\"\nimport { useIsToday } from \"../../hooks\"\n\ntype RenderProps = {\n  infoTrafficData: InfoTrafficFieldsFragment[]\n}\n\nconst InfoTraffic: React.FC<RenderProps> = ({ infoTrafficData }) => {\n  const globalConfig = useStaticQuery(graphql`\n    query MyQuery {\n      datoCmsGlobalConfiguration {\n        id\n        infoTrafficContentTitle\n      }\n      allDatoCmsPage(filter: { isInfoTrafficDetailPage: { eq: true } }) {\n        nodes {\n          id\n          title\n          slug\n          isInfoTrafficDetailPage\n        }\n      }\n    }\n  `)\n\n  const [infoTrafficDetailPage, setInfoTrafficDetailPage] = useState(null)\n  useEffect(() => {\n    if (!infoTrafficDetailPage) {\n      if (globalConfig.allDatoCmsPage && globalConfig.allDatoCmsPage.nodes) {\n        let infoLocalized = globalConfig.allDatoCmsPage.nodes[0]\n        setInfoTrafficDetailPage(infoLocalized)\n      }\n    }\n  }, [infoTrafficDetailPage])\n\n  const [info, setInfo] = useState(null)\n  const [dataInfo, setData] = useState(null)\n\n  useEffect(() => {\n    if (dataInfo) {\n      const parsedInfo = parseInfoTraffic(dataInfo.allInfoTraffics)\n      setInfo(parsedInfo)\n    }\n  }, [dataInfo])\n\n  const { data } = useQuerySubscription({\n    enabled: true,\n    query: `\n      query infoQuery {\n        allInfoTraffics(locale: ${config.locale}, orderBy: [start_DESC], first: 100) {\n          start\n          end\n          id\n          title\n          disruptionType\n          displayInHome\n          pictogram {\n            url\n            alt\n            format\n          }\n          lines {\n            id\n            number\n            name\n            pictogram {\n              url\n              alt\n              format\n            }\n          }\n          shortDescription\n          slug\n        }\n      }`,\n    token: config.readOnlyApi,\n  })\n\n  if (data) {\n    if (data != dataInfo) {\n      setData(data)\n    }\n  }\n\n  function parseInfoTraffic(dataToParse) {\n    const lines = []\n    dataToParse.forEach(infoTraffic => {\n      infoTraffic.lines.map(line => {\n        lines.push(line)\n      })\n    })\n\n    const uniqueLines = lines.filter((ele, index) => index === lines.findIndex(elem => elem.id === ele.id))\n    const myLinesWithTraffic = []\n    uniqueLines.forEach(line => {\n      const infoTrafficArray = []\n      dataToParse.forEach(infoTraffic => {\n        infoTraffic.lines.forEach(subline => {\n          if (line.name == subline.name && useIsToday(infoTraffic.start, infoTraffic.end)) {\n            infoTrafficArray.push(infoTraffic)\n            myLinesWithTraffic.push({ line: line, traffic: infoTrafficArray })\n          }\n        })\n      })\n    })\n\n    return myLinesWithTraffic.filter((ele, index) => {\n      return index === myLinesWithTraffic.findIndex(elem => elem.line === ele.line)\n    })\n  }\n\n  return (\n    <div className={styles.container}>\n      <h3 className={styles.title}>{globalConfig.datoCmsGlobalConfiguration.infoTrafficContentTitle}</h3>\n      {info &&\n        info.map(line => {\n          return (\n            <div className={styles.line} key={line.line.id}>\n              <h4 className={line.traffic.length > 1 ? styles.pictoBoxTop : styles.pictoBox}>\n                <img src={line.line.pictogram.url} alt={line.line.pictogram.alt} className={styles.svgImage} />\n              </h4>\n\n              <ul className={styles.lineDivider}>\n                {line.traffic.map(traffic => {\n                  return (\n                    <li className={styles.trafficContainer} key={traffic.id}>\n                      <a\n                        href={\n                          `/${infoTrafficDetailPage.slug}` +\n                          \"?\" +\n                          traffic.title.replace(new RegExp(\" \", \"g\"), \"-\") +\n                          \"#\" +\n                          traffic.id\n                        }\n                        className={styles.linkNoStyle}\n                      >\n                        <div className={styles.pictoBoxTraffic}>\n                          <img\n                            src={traffic.pictogram.url}\n                            alt={traffic.pictogram.alt}\n                            className={styles.svgImage}\n                            aria-hidden=\"true\"\n                          />\n                        </div>\n                        <div\n                          dangerouslySetInnerHTML={{\n                            __html: sanitizeHtml(traffic.shortDescription),\n                          }}\n                        />\n                      </a>\n                    </li>\n                  )\n                })}\n              </ul>\n            </div>\n          )\n        })}\n    </div>\n  )\n}\n\nexport default InfoTraffic\n","// extracted by mini-css-extract-plugin\nexport var customForm = \"custom-form-module--customForm--efbb2\";\nexport var fileField = \"custom-form-module--fileField--22957\";\nexport var formPart = \"custom-form-module--formPart--7231c\";\nexport var globalError = \"custom-form-module--globalError--2a843\";\nexport var select = \"custom-form-module--select--dab73\";\nexport var submitButton = \"custom-form-module--submitButton--5c78c\";\nexport var successMessage = \"custom-form-module--successMessage--175f5\";\nexport var textField = \"custom-form-module--textField--92552\";\nexport var title = \"custom-form-module--title--487a7\";","import * as inputsStyles from \"../inputs.module.scss\"\nimport React from \"react\"\nimport { RegisterOptions, UseFormRegisterReturn } from \"react-hook-form\"\n\ntype RenderProps = {\n  id?: string\n  name: string\n  required?: boolean\n  className?: string\n  placeholder?: string\n  hasErrors?: boolean\n  onFocus?: (value: any) => void\n} & (\n  | {\n      value?: string\n      onChange?: (value: string) => void\n      register: (name: string, options?: RegisterOptions) => UseFormRegisterReturn\n    }\n  | { value: string; onChange: (value: string) => void; register: undefined }\n)\n\nconst Textarea: React.FC<RenderProps> = ({\n  id,\n  name,\n  required,\n  className = \"\",\n  placeholder = \"\",\n  value,\n  onChange,\n  register,\n  hasErrors,\n  onFocus,\n}) => {\n  return (\n    <textarea\n      id={id}\n      name={name}\n      placeholder={placeholder}\n      required={required}\n      className={inputsStyles.textarea + \" \" + (hasErrors ? inputsStyles.fieldInError + \" \" : \"\") + className}\n      onChange={event => onChange && onChange(event.target.value)}\n      value={value}\n      {...register(name, { required })}\n      onFocus={event => {\n        onFocus && onFocus(event.target.id)\n      }}\n    />\n  )\n}\n\nexport default Textarea\n","import * as inputsStyles from \"../inputs.module.scss\"\nimport React from \"react\"\nimport { RegisterOptions, UseFormRegisterReturn } from \"react-hook-form\"\n\ntype RenderProps = {\n  id?: string\n  name: string\n  required?: boolean\n  className?: string\n  value?: string\n  onChange?: (value: string) => void\n  checked?: boolean\n  label: string\n  register?: (name: string, options?: RegisterOptions) => UseFormRegisterReturn\n  hasErrors?: boolean\n  onFocus?: (value: any) => void\n}\n\nconst RadioButton: React.FC<RenderProps> = ({\n  id,\n  name,\n  required,\n  className = \"\",\n  value,\n  label,\n  checked,\n  onChange,\n  register,\n  hasErrors,\n  onFocus,\n}) => {\n  return (\n    <label className={inputsStyles.radioButton + (hasErrors ? \" \" + inputsStyles.fieldInError : \"\")}>\n      {label}\n      <input\n        tabIndex={0}\n        type=\"radio\"\n        id={id}\n        name={name}\n        required={required}\n        className={className}\n        onChange={() => onChange(value)}\n        value={value}\n        checked={checked}\n        {...register(name, { required })}\n        onFocus={event => {\n          onFocus && onFocus(event.target.id)\n        }}\n      />\n      <span tabIndex={0} className={inputsStyles.checkmark} />\n    </label>\n  )\n}\n\nexport default RadioButton\n","import * as inputsStyles from \"../inputs.module.scss\"\nimport React from \"react\"\nimport { RegisterOptions, UseFormRegisterReturn } from \"react-hook-form\"\n\ntype RenderProps = {\n  id?: string\n  name: string\n  required?: boolean\n  className?: string\n  onChange?: (value: boolean) => void\n  checked?: boolean\n  label: string\n  register?: (name: string, options?: RegisterOptions) => UseFormRegisterReturn\n  hasErrors?: boolean\n  onFocus?: (value: any) => void\n}\n\nconst Checkbox: React.FC<RenderProps> = ({\n  id,\n  name,\n  required,\n  className = \"\",\n  label,\n  checked,\n  onChange,\n  register,\n  hasErrors,\n  onFocus,\n}) => {\n  return (\n    <label htmlFor={id} className={`${inputsStyles.checkbox} ${hasErrors ? \" \" + inputsStyles.fieldInError : \"\"}`}>\n      {label}\n      <input\n        type=\"checkbox\"\n        id={id}\n        name={name}\n        required={required}\n        className={className}\n        onChange={() => onChange(!checked)}\n        value={label}\n        checked={checked}\n        {...register(name, { required })}\n        onFocus={event => {\n          onFocus && onFocus(event.target.id)\n        }}\n      />\n      <span className={inputsStyles.checkmark} />\n    </label>\n  )\n}\n\nexport default Checkbox\n","import * as inputsStyles from \"../inputs.module.scss\"\nimport React from \"react\"\nimport arrowDown from \"../../../../static/images/arrow-down.svg\"\nimport { ReactSVG } from \"react-svg\"\nimport { RegisterOptions, UseFormRegisterReturn } from \"react-hook-form\"\n\ntype RenderProps = {\n  id?: string\n  name: string\n  required?: boolean\n  className?: string\n  options: string[]\n  hasErrors: boolean\n  onFocus?: (value: any) => void\n  autocomplete?: boolean\n} & (\n  | {\n      value?: string\n      onChange?: (value: string) => void\n      register: (name: string, options?: RegisterOptions) => UseFormRegisterReturn\n    }\n  | {\n      value: string\n      onChange: (value: string) => void\n      register: undefined\n    }\n)\n\nconst Select: React.FC<RenderProps> = ({\n  id,\n  name,\n  required,\n  className = \"\",\n  value,\n  options,\n  onChange,\n  register,\n  hasErrors,\n  onFocus,\n  autocomplete,\n}) => {\n  return (\n    <div className={inputsStyles.select + \" \" + (hasErrors ? inputsStyles.fieldInError + \" \" : \"\") + className}>\n      <select\n        id={id}\n        name={name}\n        required={required}\n        autoComplete={autocomplete ? name : undefined}\n        onChange={event => onChange && onChange(event.target.value)}\n        value={value}\n        {...register(name, { required })}\n        onFocus={event => {\n          onFocus && onFocus(event.target.id)\n        }}\n      >\n        {options.map(option => (\n          <option value={option} key={option}>\n            {option}\n          </option>\n        ))}\n      </select>\n      <ReactSVG\n        src={arrowDown}\n        className={inputsStyles.arrowDown}\n        beforeInjection={svg => svg.setAttribute(\"aria-hidden\", \"true\")}\n      />\n    </div>\n  )\n}\n\nexport default Select\n","import React from \"react\"\nimport { RegisterOptions, UseFormRegisterReturn } from \"react-hook-form\"\n\ntype RenderProps = {\n  id?: string\n  type: string\n  name: string\n  required?: boolean\n  className?: string\n  placeholder?: string\n  onChange: (value: FileList) => void\n  register?: (name: string, options?: RegisterOptions) => UseFormRegisterReturn\n  onFocus?: (value: any) => void\n}\n\nconst FileInput: React.FC<RenderProps> = ({\n  id,\n  type,\n  name,\n  required,\n  className = \"\",\n  placeholder = \"\",\n  onChange,\n  register,\n  onFocus,\n}) => {\n  return (\n    <input\n      id={id}\n      {...register(name, { required })}\n      type=\"file\"\n      name={name}\n      placeholder={placeholder}\n      required={required}\n      onChange={event => onChange(event.target.files)}\n      className={className}\n      onFocus={event => {\n        onFocus && onFocus(event.target.id)\n      }}\n    />\n  )\n}\n\nexport default FileInput\n","import * as inputsStyles from \"../inputs.module.scss\"\nimport React from \"react\"\nimport { FieldErrors } from \"react-hook-form/dist/types/errors\"\n\ntype RenderProps = {\n  errors: FieldErrors\n  name: string\n  type: string\n  id?: string\n  children?: React.ReactNode\n}\n\nconst FormError: React.FC<RenderProps> = ({ errors, name, type, id, children }) => {\n  if (errors && errors[name] && errors[name].type === type) {\n    return (\n      <div className={inputsStyles.formError} id={id || null} aria-describedby={name || null}>\n        {children}\n      </div>\n    )\n  }\n  return <></>\n}\n\nexport default FormError\n","import * as config from \"../../config\"\nimport { EmailReceiversFieldsFragment } from \"../../graphql-types\"\n\nexport const importFiles = async (file: File): Promise<SavedFile> => {\n  const headers = { Accept: \"application/json\", \"Ocp-Apim-Subscription-Key\": config.notifications_service_token }\n  const formData = new FormData()\n  formData.append(\"file\", file)\n\n  const response = await fetch(config.notifications_service_import_file_endpoint, {\n    method: \"POST\",\n    headers,\n    body: formData,\n  })\n\n  if (!response.ok) {\n    throw new Error(response.statusText)\n  }\n  return response.json()\n}\n\nexport const formatReceivers = (receivers: EmailReceiversFieldsFragment[]) => {\n  const emailJson = {\n    to: \"\",\n    cc: \"\",\n    bcc: \"\",\n  }\n\n  receivers.forEach(receiver => {\n    switch (receiver.sendType) {\n      case \"Principal\":\n        emailJson.to += receiver.email + \";\"\n        break\n      case \"CC\":\n        emailJson.cc += receiver.email + \";\"\n        break\n      case \"CCI\":\n        emailJson.bcc += receiver.email + \";\"\n        break\n    }\n  })\n\n  emailJson.to = emailJson.to.slice(0, -1)\n  emailJson.cc = emailJson.cc.slice(0, -1)\n  emailJson.bcc = emailJson.bcc.slice(0, -1)\n\n  return emailJson\n}\n\nexport const sendEmail = async (\n  from: string,\n  receivers: EmailReceiversFieldsFragment[],\n  subject: string,\n  content: string,\n  files: File[],\n  replyTo: string\n): Promise<Response> => {\n  const formattedContent = content.replace(/\\n/g, \"<br>\")\n  const headers = {\n    Accept: \"application/json\",\n    \"Content-Type\": \"application/json\",\n    \"Ocp-Apim-Subscription-Key\": config.notifications_service_token,\n  }\n  const filesPromise = files.length > 0 ? Promise.all(files.map(importFiles)) : Promise.resolve([])\n  const importedFiles = await filesPromise\n\n  const { to, cc, bcc } = formatReceivers(receivers)\n\n  const response = await fetch(config.notifications_service_endpoint, {\n    method: \"POST\",\n    headers,\n    body: JSON.stringify({\n      notificationType: \"Email\",\n      notificationContent: {\n        from,\n        to,\n        replyTo,\n        cc,\n        bcc,\n        emailType: \"NoTemplateWithLogoAndAttachments\",\n        content: {\n          subject,\n          htmlMessage: formattedContent,\n          attachments: importedFiles,\n        },\n      },\n    }),\n  })\n\n  if (!response.ok) {\n    throw new Error(response.statusText)\n  }\n  return response\n}\n\n// We don't want to know the type because we're not supposed to do anything with it.\n// If that assumption changes, see the OAS of the service (on Keolis.Notifications repository on Azure devops)\ntype SavedFile = unknown\n","import { allowedNodeTypes, headingNodeType, spanNodeType, rootNodeType, paragraphNodeType, listNodeType, listItemNodeType, blockquoteNodeType, blockNodeType, codeNodeType, linkNodeType, itemLinkNodeType, inlineItemNodeType, inlineNodeTypes, thematicBreakNodeType } from './definitions';\nexport function hasChildren(node) {\n  return 'children' in node;\n}\nexport function isInlineNode(node) {\n  return inlineNodeTypes.includes(node.type);\n}\nexport function isHeading(node) {\n  return node.type === headingNodeType;\n}\nexport function isSpan(node) {\n  return node.type === spanNodeType;\n}\nexport function isRoot(node) {\n  return node.type === rootNodeType;\n}\nexport function isParagraph(node) {\n  return node.type === paragraphNodeType;\n}\nexport function isList(node) {\n  return node.type === listNodeType;\n}\nexport function isListItem(node) {\n  return node.type === listItemNodeType;\n}\nexport function isBlockquote(node) {\n  return node.type === blockquoteNodeType;\n}\nexport function isBlock(node) {\n  return node.type === blockNodeType;\n}\nexport function isCode(node) {\n  return node.type === codeNodeType;\n}\nexport function isLink(node) {\n  return node.type === linkNodeType;\n}\nexport function isItemLink(node) {\n  return node.type === itemLinkNodeType;\n}\nexport function isInlineItem(node) {\n  return node.type === inlineItemNodeType;\n}\nexport function isThematicBreak(node) {\n  return node.type === thematicBreakNodeType;\n}\nfunction isObject(obj) {\n  return Boolean(typeof obj === 'object' && obj);\n}\nexport function isNodeType(value) {\n  return allowedNodeTypes.includes(value);\n}\nexport function isNode(obj) {\n  return Boolean(isObject(obj) && 'type' in obj && typeof obj.type === 'string' && isNodeType(obj.type));\n}\nexport function isStructuredText(obj) {\n  return Boolean(isObject(obj) && 'value' in obj && isDocument(obj.value));\n}\nexport function isDocument(obj) {\n  return Boolean(isObject(obj) && 'schema' in obj && 'document' in obj && obj.schema === 'dast');\n}\nexport function isEmptyDocument(obj) {\n  if (!obj) {\n    return true;\n  }\n  var document = isStructuredText(obj) && isDocument(obj.value) ? obj.value : isDocument(obj) ? obj : null;\n  if (!document) {\n    throw new Error('Passed object is neither null, a Structured Text value or a DAST document');\n  }\n  return document.document.children.length === 1 && document.document.children[0].type === 'paragraph' && document.document.children[0].children.length === 1 && document.document.children[0].children[0].type === 'span' && document.document.children[0].children[0].value === '';\n}","/**\n * Flatten an array indefinitely.\n */\nexport function flatten(array) {\n  var result = [];\n  $flatten(array, result);\n  return result;\n}\n/**\n * Internal flatten function recursively passes `result`.\n */\nfunction $flatten(array, result) {\n  for (var i = 0; i < array.length; i++) {\n    var value = array[i];\n    if (Array.isArray(value)) {\n      $flatten(value, result);\n    } else {\n      result.push(value);\n    }\n  }\n}","var __extends = this && this.__extends || function () {\n  var _extendStatics = function extendStatics(d, b) {\n    _extendStatics = Object.setPrototypeOf || {\n      __proto__: []\n    } instanceof Array && function (d, b) {\n      d.__proto__ = b;\n    } || function (d, b) {\n      for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n    };\n    return _extendStatics(d, b);\n  };\n  return function (d, b) {\n    _extendStatics(d, b);\n    function __() {\n      this.constructor = d;\n    }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n  };\n}();\nvar __spreadArrays = this && this.__spreadArrays || function () {\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++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j];\n  return r;\n};\nimport { hasChildren, isDocument, isNode, isStructuredText } from './guards';\nimport { flatten } from 'array-flatten';\nvar RenderError = /** @class */function (_super) {\n  __extends(RenderError, _super);\n  function RenderError(message, node) {\n    var _this = _super.call(this, message) || this;\n    _this.node = node;\n    Object.setPrototypeOf(_this, RenderError.prototype);\n    return _this;\n  }\n  return RenderError;\n}(Error);\nexport { RenderError };\nexport var renderRule = function renderRule(guard, transform) {\n  return {\n    appliable: guard,\n    apply: function apply(ctx) {\n      return transform(ctx);\n    }\n  };\n};\nexport function transformNode(adapter, node, key, ancestors, renderRules) {\n  var children = hasChildren(node) ? flatten(node.children.map(function (innerNode, index) {\n    return transformNode(adapter, innerNode, \"t-\" + index, __spreadArrays([node], ancestors), renderRules);\n  }).filter(function (x) {\n    return !!x;\n  })) : undefined;\n  var matchingTransform = renderRules.find(function (transform) {\n    return transform.appliable(node);\n  });\n  if (matchingTransform) {\n    return matchingTransform.apply({\n      adapter: adapter,\n      node: node,\n      children: children,\n      key: key,\n      ancestors: ancestors\n    });\n  }\n  throw new RenderError(\"Don't know how to render a node with type \\\"\" + node.type + \"\\\". Please specify a custom renderRule for it!\", node);\n}\nexport function render(adapter, structuredTextOrNode, renderRules) {\n  if (!structuredTextOrNode) {\n    return null;\n  }\n  var node = isStructuredText(structuredTextOrNode) && isDocument(structuredTextOrNode.value) ? structuredTextOrNode.value.document : isDocument(structuredTextOrNode) ? structuredTextOrNode.document : isNode(structuredTextOrNode) ? structuredTextOrNode : undefined;\n  if (!node) {\n    throw new Error('Passed object is neither null, a Structured Text value, a DAST document or a DAST node');\n  }\n  var result = transformNode(adapter, node, 't-0', [], renderRules);\n  return result;\n}","var __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)) t[p] = s[p];\n    }\n    return t;\n  };\n  return __assign.apply(this, arguments);\n};\nvar __spreadArrays = this && this.__spreadArrays || function () {\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++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j];\n  return r;\n};\nimport { isBlockquote, isCode, isHeading, isLink, isList, isListItem, isParagraph, isRoot, isSpan, render as genericRender, renderRule, RenderError, isThematicBreak } from 'datocms-structured-text-utils';\nexport { renderRule as renderNodeRule, RenderError };\nexport function markToTagName(mark) {\n  switch (mark) {\n    case 'emphasis':\n      return 'em';\n    case 'underline':\n      return 'u';\n    case 'strikethrough':\n      return 's';\n    case 'highlight':\n      return 'mark';\n    default:\n      return mark;\n  }\n}\nexport function renderSpanValue(_a) {\n  var node = _a.node,\n    key = _a.key,\n    _b = _a.adapter,\n    renderNode = _b.renderNode,\n    renderText = _b.renderText,\n    renderFragment = _b.renderFragment;\n  var lines = node.value.split(/\\n/);\n  if (lines.length === 0) {\n    return renderText(node.value, key);\n  }\n  return renderFragment(lines.slice(1).reduce(function (acc, line, index) {\n    return acc.concat([renderNode('br', {\n      key: key + \"-br-\" + index\n    }), renderText(line, key + \"-line-\" + index)]);\n  }, [renderText(lines[0], key + \"-line-first\")]), key);\n}\nexport function renderMarkRule(guard, transform) {\n  return {\n    appliable: typeof guard === 'string' ? function (mark) {\n      return mark === guard;\n    } : guard,\n    apply: transform\n  };\n}\nexport function spanNodeRenderRule(_a) {\n  var customMarkRules = _a.customMarkRules;\n  return renderRule(isSpan, function (context) {\n    var adapter = context.adapter,\n      key = context.key,\n      node = context.node;\n    return (node.marks || []).reduce(function (children, mark) {\n      if (!children) {\n        return undefined;\n      }\n      var matchingCustomRule = customMarkRules.find(function (rule) {\n        return rule.appliable(mark);\n      });\n      if (matchingCustomRule) {\n        return matchingCustomRule.apply({\n          adapter: adapter,\n          key: key,\n          mark: mark,\n          children: children\n        });\n      }\n      return adapter.renderNode(markToTagName(mark), {\n        key: key\n      }, children);\n    }, renderSpanValue(context));\n  });\n}\nexport var defaultMetaTransformer = function defaultMetaTransformer(_a) {\n  var meta = _a.meta;\n  var attributes = {};\n  meta.forEach(function (entry) {\n    if (['target', 'title', 'rel'].includes(entry.id)) {\n      attributes[entry.id] = entry.value;\n    }\n  });\n  return attributes;\n};\nexport function render(structuredTextOrNode, options) {\n  var metaTransformer = options.metaTransformer || defaultMetaTransformer;\n  return genericRender(options.adapter, structuredTextOrNode, __spreadArrays(options.customNodeRules || [], [renderRule(isRoot, function (_a) {\n    var renderFragment = _a.adapter.renderFragment,\n      key = _a.key,\n      children = _a.children;\n    return renderFragment(children, key);\n  }), renderRule(isParagraph, function (_a) {\n    var renderNode = _a.adapter.renderNode,\n      key = _a.key,\n      children = _a.children;\n    return renderNode('p', {\n      key: key\n    }, children);\n  }), renderRule(isList, function (_a) {\n    var renderNode = _a.adapter.renderNode,\n      node = _a.node,\n      key = _a.key,\n      children = _a.children;\n    return renderNode(node.style === 'bulleted' ? 'ul' : 'ol', {\n      key: key\n    }, children);\n  }), renderRule(isListItem, function (_a) {\n    var renderNode = _a.adapter.renderNode,\n      key = _a.key,\n      children = _a.children;\n    return renderNode('li', {\n      key: key\n    }, children);\n  }), renderRule(isBlockquote, function (_a) {\n    var renderNode = _a.adapter.renderNode,\n      key = _a.key,\n      node = _a.node,\n      children = _a.children;\n    var childrenWithAttribution = node.attribution ? __spreadArrays(children || [], [renderNode(\"footer\", {\n      key: 'footer'\n    }, node.attribution)]) : children;\n    return renderNode('blockquote', {\n      key: key\n    }, childrenWithAttribution);\n  }), renderRule(isCode, function (_a) {\n    var _b = _a.adapter,\n      renderNode = _b.renderNode,\n      renderText = _b.renderText,\n      key = _a.key,\n      node = _a.node;\n    return renderNode('pre', {\n      key: key,\n      'data-language': node.language\n    }, renderNode('code', null, renderText(node.code)));\n  }), renderRule(isLink, function (_a) {\n    var renderNode = _a.adapter.renderNode,\n      key = _a.key,\n      children = _a.children,\n      node = _a.node;\n    var meta = node.meta ? metaTransformer({\n      node: node,\n      meta: node.meta\n    }) : {};\n    return renderNode('a', __assign(__assign({}, meta || {}), {\n      key: key,\n      href: node.url\n    }), children);\n  }), renderRule(isThematicBreak, function (_a) {\n    var renderNode = _a.adapter.renderNode,\n      key = _a.key;\n    return renderNode('hr', {\n      key: key\n    });\n  }), renderRule(isHeading, function (_a) {\n    var node = _a.node,\n      renderNode = _a.adapter.renderNode,\n      children = _a.children,\n      key = _a.key;\n    return renderNode(\"h\" + node.level, {\n      key: key\n    }, children);\n  }), spanNodeRenderRule({\n    customMarkRules: options.customMarkRules || []\n  })]));\n}","var __spreadArrays = this && this.__spreadArrays || function () {\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++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j];\n  return r;\n};\nimport { defaultMetaTransformer, render as genericHtmlRender, renderNodeRule, renderMarkRule } from 'datocms-structured-text-generic-html-renderer';\nimport { isBlock, isInlineItem, isItemLink, isStructuredText, RenderError } from 'datocms-structured-text-utils';\nimport vhtml from 'vhtml';\nexport { renderNodeRule, renderMarkRule, RenderError };\n// deprecated export\nexport { renderNodeRule as renderRule };\nvar vhtmlAdapter = function vhtmlAdapter(tagName, attrs) {\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  var children = [];\n  for (\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  var _i = 2;\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  _i < arguments.length;\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  _i++) {\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    children[_i - 2] = arguments[_i];\n  }\n  if (attrs) {\n    delete attrs.key;\n  }\n  return vhtml.apply(void 0, __spreadArrays([tagName, attrs], children));\n};\nexport var defaultAdapter = {\n  renderNode: vhtmlAdapter,\n  renderFragment: function renderFragment(children) {\n    return vhtmlAdapter(null, null, children);\n  },\n  renderText: function renderText(text) {\n    return text;\n  }\n};\nexport function render( /** The actual field value you get from DatoCMS **/\nstructuredTextOrNode, /** Additional render settings **/\nsettings) {\n  var renderInlineRecord = settings === null || settings === void 0 ? void 0 : settings.renderInlineRecord;\n  var renderLinkToRecord = settings === null || settings === void 0 ? void 0 : settings.renderLinkToRecord;\n  var renderBlock = settings === null || settings === void 0 ? void 0 : settings.renderBlock;\n  var customRules = (settings === null || settings === void 0 ? void 0 : settings.customNodeRules) || (settings === null || settings === void 0 ? void 0 : settings.customRules) || [];\n  var result = genericHtmlRender(structuredTextOrNode, {\n    adapter: {\n      renderText: (settings === null || settings === void 0 ? void 0 : settings.renderText) || defaultAdapter.renderText,\n      renderNode: (settings === null || settings === void 0 ? void 0 : settings.renderNode) || defaultAdapter.renderNode,\n      renderFragment: (settings === null || settings === void 0 ? void 0 : settings.renderFragment) || defaultAdapter.renderFragment\n    },\n    customMarkRules: settings === null || settings === void 0 ? void 0 : settings.customMarkRules,\n    metaTransformer: settings === null || settings === void 0 ? void 0 : settings.metaTransformer,\n    customNodeRules: __spreadArrays(customRules, [renderNodeRule(isInlineItem, function (_a) {\n      var node = _a.node,\n        adapter = _a.adapter;\n      if (!renderInlineRecord) {\n        throw new RenderError(\"The Structured Text document contains an 'inlineItem' node, but no 'renderInlineRecord' option is specified!\", node);\n      }\n      if (!isStructuredText(structuredTextOrNode) || !structuredTextOrNode.links) {\n        throw new RenderError(\"The document contains an 'inlineItem' node, but the passed value is not a Structured Text GraphQL response, or .links is not present!\", node);\n      }\n      var item = structuredTextOrNode.links.find(function (item) {\n        return item.id === node.item;\n      });\n      if (!item) {\n        throw new RenderError(\"The Structured Text document contains an 'inlineItem' node, but cannot find a record with ID \" + node.item + \" inside .links!\", node);\n      }\n      return renderInlineRecord({\n        record: item,\n        adapter: adapter\n      });\n    }), renderNodeRule(isItemLink, function (_a) {\n      var node = _a.node,\n        children = _a.children,\n        adapter = _a.adapter;\n      if (!renderLinkToRecord) {\n        throw new RenderError(\"The Structured Text document contains an 'itemLink' node, but no 'renderLinkToRecord' option is specified!\", node);\n      }\n      if (!isStructuredText(structuredTextOrNode) || !structuredTextOrNode.links) {\n        throw new RenderError(\"The document contains an 'itemLink' node, but the passed value is not a Structured Text GraphQL response, or .links is not present!\", node);\n      }\n      var item = structuredTextOrNode.links.find(function (item) {\n        return item.id === node.item;\n      });\n      if (!item) {\n        throw new RenderError(\"The Structured Text document contains an 'itemLink' node, but cannot find a record with ID \" + node.item + \" inside .links!\", node);\n      }\n      return renderLinkToRecord({\n        record: item,\n        adapter: adapter,\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        children: children,\n        transformedMeta: node.meta ? ((settings === null || settings === void 0 ? void 0 : settings.metaTransformer) || defaultMetaTransformer)({\n          node: node,\n          meta: node.meta\n        }) : null\n      });\n    }), renderNodeRule(isBlock, function (_a) {\n      var node = _a.node,\n        adapter = _a.adapter;\n      if (!renderBlock) {\n        throw new RenderError(\"The Structured Text document contains a 'block' node, but no 'renderBlock' option is specified!\", node);\n      }\n      if (!isStructuredText(structuredTextOrNode) || !structuredTextOrNode.blocks) {\n        throw new RenderError(\"The document contains a 'block' node, but the passed value is not a Structured Text GraphQL response, or .blocks is not present!\", node);\n      }\n      var item = structuredTextOrNode.blocks.find(function (item) {\n        return item.id === node.item;\n      });\n      if (!item) {\n        throw new RenderError(\"The Structured Text document contains a 'block' node, but cannot find a record with ID \" + node.item + \" inside .blocks!\", node);\n      }\n      return renderBlock({\n        record: item,\n        adapter: adapter\n      });\n    })])\n  });\n  return result || null;\n}","import {\n  CustomFormFieldsFragment,\n  CustomFormsConfigurationFieldsFragment,\n  DatoCmsDatoCmsFormUserEmailContentStructuredText,\n  DatoCmsDatoCmsFormSubsidiaryEmailContentStructuredText,\n} from \"../../../graphql-types\"\nimport { render } from \"datocms-structured-text-to-html-string\"\nimport { StructuredText as StructuredTextGraphQlResponse } from \"datocms-structured-text-utils/dist/types/types\"\nimport sanitizeHtml from \"sanitize-html\"\nimport { decode } from \"html-entities\"\n\nexport function formToText(\n  configuration: CustomFormsConfigurationFieldsFragment,\n  content: DatoCmsDatoCmsFormUserEmailContentStructuredText | DatoCmsDatoCmsFormSubsidiaryEmailContentStructuredText,\n  fields: CustomFormFieldsFragment[\"fieldsList\"],\n  values: { [key: string]: any }\n) {\n  const renderFormContent = (renderNode, renderText) => {\n    return fields\n      .filter(field => ![\"DatoCmsSimpleText\", \"DatoCmsFileField\"].includes(field.__typename))\n      .map(field => {\n        switch (field.__typename) {\n          case \"DatoCmsSingleLineTextField\":\n          case \"DatoCmsRadioButtonsField\":\n          case \"DatoCmsSelectField\":\n          case \"DatoCmsUserEmailField\":\n          case \"DatoCmsMultiLinesTextField\":\n            return {\n              label: decode(cleanHtmlTags(field.name)),\n              value: decode(cleanHtmlTags(values[field.id])),\n            }\n          case \"DatoCmsCheckboxField\":\n            return {\n              label: decode(cleanHtmlTags(field.name)),\n              value: values[field.id] ? \"✓\" : \"✖︎\",\n            }\n          default:\n            return { label: \"Unhandled field type\", value: field.__typename }\n        }\n      })\n      .map(({ label, value }, index) => {\n        // Alternate row background color\n        const backgroundColor = index % 2 === 0 ? \"#f4f4f4\" : \"#ffffff\"\n        const trStyle = `background-color: ${backgroundColor}; font-family: \"Raleway\", Arial, sans-serif; font-size: 16px; ;`\n        const thStyle = \"padding: 8px; text-align: left; font-weight: 400; max-width:400px\"\n        const tdStyle = \"padding: 8px; text-align: left; font-weight: 600;\"\n        return renderNode(\"tr\", { style: trStyle }, [\n          renderNode(\"th\", { style: thStyle }, renderText(label)),\n          renderNode(\"td\", { style: tdStyle }, renderText(value)),\n        ])\n      })\n  }\n  const tableStyle = `border-spacing: 0; font-family: \"Roboto Slab Medium\", Arial, serif; font-size: 16px`\n  const options = {\n    renderBlock(block) {\n      if (block.fragmentType === \"Email content\") {\n        return block.renderNode(\n          \"table\",\n          { style: tableStyle },\n          renderFormContent(block.adapter.renderNode, block.adapter.renderText)\n        )\n      }\n      console.log(\"Unhandled fragment: \" + block.fragmentType)\n    },\n    renderInlineRecord({ record: block, adapter: { renderNode, renderText } }) {\n      if (block.fragmentType === \"Form content\") {\n        return renderNode(\"table\", { style: tableStyle }, renderFormContent(renderNode, renderText))\n      }\n      console.log(\"Unhandled fragment: \" + block.fragmentType)\n    },\n  }\n  const emailBody = render(content as unknown as StructuredTextGraphQlResponse, options)\n  // Add the subsidiary logo at the bottom of the email\n  if (configuration.logoSubsidiary) {\n    const logo = `<img src=\"${configuration.logoSubsidiary.url}\" alt=\"${configuration.logoSubsidiary.alt}\" style=\"max-width: 150px; margin-top: 50px; margin-bottom: 20px;\"/>`\n    return emailBody + logo\n  }\n  return emailBody\n}\n\nfunction cleanHtmlTags(value: string) {\n  return sanitizeHtml(value, {\n    allowedTags: [],\n    allowedAttributes: {},\n  })\n}\n","export function getFieldName(fieldName) {\n  if (fieldName == undefined || !fieldName) {\n    return undefined\n  }\n  let cleanFieldName = fieldName.toLowerCase().replaceAll(\"é\", \"e\")\n  const tel = [\"tel\", \"telephone\", \"phone\", \"tel.\", \"tel-national\", \"numero de telephone\"]\n  const email = [\"email\", \"mail\", \"e-mail\", \"courriel\", \"courriel electronique\"]\n  const givenName = [\"prenom\", \"firstname\", \"first-name\", \"givenname\", \"given-name\", \"given name\"]\n  const familyName = [\"nom de famille\", \"nom\", \"patronyme\", \"name\", \"family name\", \"family-name\"]\n  const country = [\"pays\", \"country\", \"pays de residence\"]\n  const prefix = [\"civilite\", \"civ.\", \"civi.\"]\n  let newRegex = new RegExp(`${cleanFieldName}`)\n  let realName = undefined\n\n  tel.forEach(element => {\n    if (newRegex.test(element)) {\n      realName = \"tel-national\"\n    }\n  })\n  email.forEach(element => {\n    if (newRegex.test(element)) {\n      realName = \"email\"\n    }\n  })\n  givenName.forEach(element => {\n    if (newRegex.test(element)) {\n      realName = \"given-name\"\n    }\n  })\n  familyName.forEach(element => {\n    if (newRegex.test(element)) {\n      realName = \"family-name\"\n    }\n  })\n  prefix.forEach(element => {\n    if (newRegex.test(element)) {\n      realName = \"honorific-prefix\"\n    }\n  })\n  country.forEach(element => {\n    if (newRegex.test(element)) {\n      realName = \"country-name\"\n    }\n  })\n  return realName\n}\n","var _excluded = [\"sitekey\", \"onChange\", \"theme\", \"type\", \"tabindex\", \"onExpired\", \"onErrored\", \"size\", \"stoken\", \"grecaptcha\", \"badge\", \"hl\", \"isolated\"];\nfunction _extends() {\n  _extends = Object.assign ? Object.assign.bind() : function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n    return target;\n  };\n  return _extends.apply(this, arguments);\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n  return target;\n}\nfunction _assertThisInitialized(self) {\n  if (self === void 0) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n  return self;\n}\nfunction _inheritsLoose(subClass, superClass) {\n  subClass.prototype = Object.create(superClass.prototype);\n  subClass.prototype.constructor = subClass;\n  _setPrototypeOf(subClass, superClass);\n}\nfunction _setPrototypeOf(o, p) {\n  _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  };\n  return _setPrototypeOf(o, p);\n}\nimport * as React from \"react\";\nvar ReCAPTCHA = /*#__PURE__*/function (_React$Component) {\n  _inheritsLoose(ReCAPTCHA, _React$Component);\n  function ReCAPTCHA() {\n    var _this;\n    _this = _React$Component.call(this) || this;\n    _this.handleExpired = _this.handleExpired.bind(_assertThisInitialized(_this));\n    _this.handleErrored = _this.handleErrored.bind(_assertThisInitialized(_this));\n    _this.handleChange = _this.handleChange.bind(_assertThisInitialized(_this));\n    _this.handleRecaptchaRef = _this.handleRecaptchaRef.bind(_assertThisInitialized(_this));\n    return _this;\n  }\n  var _proto = ReCAPTCHA.prototype;\n  _proto.getCaptchaFunction = function getCaptchaFunction(fnName) {\n    if (this.props.grecaptcha) {\n      if (this.props.grecaptcha.enterprise) {\n        return this.props.grecaptcha.enterprise[fnName];\n      }\n      return this.props.grecaptcha[fnName];\n    }\n    return null;\n  };\n  _proto.getValue = function getValue() {\n    var getResponse = this.getCaptchaFunction(\"getResponse\");\n    if (getResponse && this._widgetId !== undefined) {\n      return getResponse(this._widgetId);\n    }\n    return null;\n  };\n  _proto.getWidgetId = function getWidgetId() {\n    if (this.props.grecaptcha && this._widgetId !== undefined) {\n      return this._widgetId;\n    }\n    return null;\n  };\n  _proto.execute = function execute() {\n    var execute = this.getCaptchaFunction(\"execute\");\n    if (execute && this._widgetId !== undefined) {\n      return execute(this._widgetId);\n    } else {\n      this._executeRequested = true;\n    }\n  };\n  _proto.executeAsync = function executeAsync() {\n    var _this2 = this;\n    return new Promise(function (resolve, reject) {\n      _this2.executionResolve = resolve;\n      _this2.executionReject = reject;\n      _this2.execute();\n    });\n  };\n  _proto.reset = function reset() {\n    var resetter = this.getCaptchaFunction(\"reset\");\n    if (resetter && this._widgetId !== undefined) {\n      resetter(this._widgetId);\n    }\n  };\n  _proto.forceReset = function forceReset() {\n    var resetter = this.getCaptchaFunction(\"reset\");\n    if (resetter) {\n      resetter();\n    }\n  };\n  _proto.handleExpired = function handleExpired() {\n    if (this.props.onExpired) {\n      this.props.onExpired();\n    } else {\n      this.handleChange(null);\n    }\n  };\n  _proto.handleErrored = function handleErrored() {\n    if (this.props.onErrored) {\n      this.props.onErrored();\n    }\n    if (this.executionReject) {\n      this.executionReject();\n      delete this.executionResolve;\n      delete this.executionReject;\n    }\n  };\n  _proto.handleChange = function handleChange(token) {\n    if (this.props.onChange) {\n      this.props.onChange(token);\n    }\n    if (this.executionResolve) {\n      this.executionResolve(token);\n      delete this.executionReject;\n      delete this.executionResolve;\n    }\n  };\n  _proto.explicitRender = function explicitRender() {\n    var render = this.getCaptchaFunction(\"render\");\n    if (render && this._widgetId === undefined) {\n      var wrapper = document.createElement(\"div\");\n      this._widgetId = render(wrapper, {\n        sitekey: this.props.sitekey,\n        callback: this.handleChange,\n        theme: this.props.theme,\n        type: this.props.type,\n        tabindex: this.props.tabindex,\n        \"expired-callback\": this.handleExpired,\n        \"error-callback\": this.handleErrored,\n        size: this.props.size,\n        stoken: this.props.stoken,\n        hl: this.props.hl,\n        badge: this.props.badge,\n        isolated: this.props.isolated\n      });\n      this.captcha.appendChild(wrapper);\n    }\n    if (this._executeRequested && this.props.grecaptcha && this._widgetId !== undefined) {\n      this._executeRequested = false;\n      this.execute();\n    }\n  };\n  _proto.componentDidMount = function componentDidMount() {\n    this.explicitRender();\n  };\n  _proto.componentDidUpdate = function componentDidUpdate() {\n    this.explicitRender();\n  };\n  _proto.handleRecaptchaRef = function handleRecaptchaRef(elem) {\n    this.captcha = elem;\n  };\n  _proto.render = function render() {\n    // consume properties owned by the reCATPCHA, pass the rest to the div so the user can style it.\n    /* eslint-disable no-unused-vars */\n    var _this$props = this.props,\n      sitekey = _this$props.sitekey,\n      onChange = _this$props.onChange,\n      theme = _this$props.theme,\n      type = _this$props.type,\n      tabindex = _this$props.tabindex,\n      onExpired = _this$props.onExpired,\n      onErrored = _this$props.onErrored,\n      size = _this$props.size,\n      stoken = _this$props.stoken,\n      grecaptcha = _this$props.grecaptcha,\n      badge = _this$props.badge,\n      hl = _this$props.hl,\n      isolated = _this$props.isolated,\n      childProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\n    /* eslint-enable no-unused-vars */\n    return /*#__PURE__*/React.createElement(\"div\", _extends({}, childProps, {\n      ref: this.handleRecaptchaRef\n    }));\n  };\n  return ReCAPTCHA;\n}(React.Component);\nexport { ReCAPTCHA as default };\nReCAPTCHA.displayName = \"ReCAPTCHA\";\nReCAPTCHA.defaultProps = {\n  onChange: function onChange() {},\n  theme: \"light\",\n  type: \"image\",\n  tabindex: 0,\n  size: \"normal\",\n  badge: \"bottomright\"\n};","function _extends() {\n  _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n    return target;\n  };\n  return _extends.apply(this, arguments);\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n  return target;\n}\nfunction _inheritsLoose(subClass, superClass) {\n  subClass.prototype = Object.create(superClass.prototype);\n  subClass.prototype.constructor = subClass;\n  subClass.__proto__ = superClass;\n}\nimport { Component, createElement, forwardRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport hoistStatics from \"hoist-non-react-statics\";\nvar SCRIPT_MAP = {}; // A counter used to generate a unique id for each component that uses the function\n\nvar idCount = 0;\nexport default function makeAsyncScript(getScriptURL, options) {\n  options = options || {};\n  return function wrapWithAsyncScript(WrappedComponent) {\n    var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || \"Component\";\n    var AsyncScriptLoader = /*#__PURE__*/\n    function (_Component) {\n      _inheritsLoose(AsyncScriptLoader, _Component);\n      function AsyncScriptLoader(props, context) {\n        var _this;\n        _this = _Component.call(this, props, context) || this;\n        _this.state = {};\n        _this.__scriptURL = \"\";\n        return _this;\n      }\n      var _proto = AsyncScriptLoader.prototype;\n      _proto.asyncScriptLoaderGetScriptLoaderID = function asyncScriptLoaderGetScriptLoaderID() {\n        if (!this.__scriptLoaderID) {\n          this.__scriptLoaderID = \"async-script-loader-\" + idCount++;\n        }\n        return this.__scriptLoaderID;\n      };\n      _proto.setupScriptURL = function setupScriptURL() {\n        this.__scriptURL = typeof getScriptURL === \"function\" ? getScriptURL() : getScriptURL;\n        return this.__scriptURL;\n      };\n      _proto.asyncScriptLoaderHandleLoad = function asyncScriptLoaderHandleLoad(state) {\n        var _this2 = this;\n\n        // use reacts setState callback to fire props.asyncScriptOnLoad with new state/entry\n        this.setState(state, function () {\n          return _this2.props.asyncScriptOnLoad && _this2.props.asyncScriptOnLoad(_this2.state);\n        });\n      };\n      _proto.asyncScriptLoaderTriggerOnScriptLoaded = function asyncScriptLoaderTriggerOnScriptLoaded() {\n        var mapEntry = SCRIPT_MAP[this.__scriptURL];\n        if (!mapEntry || !mapEntry.loaded) {\n          throw new Error(\"Script is not loaded.\");\n        }\n        for (var obsKey in mapEntry.observers) {\n          mapEntry.observers[obsKey](mapEntry);\n        }\n        delete window[options.callbackName];\n      };\n      _proto.componentDidMount = function componentDidMount() {\n        var _this3 = this;\n        var scriptURL = this.setupScriptURL();\n        var key = this.asyncScriptLoaderGetScriptLoaderID();\n        var _options = options,\n          globalName = _options.globalName,\n          callbackName = _options.callbackName,\n          scriptId = _options.scriptId; // check if global object already attached to window\n\n        if (globalName && typeof window[globalName] !== \"undefined\") {\n          SCRIPT_MAP[scriptURL] = {\n            loaded: true,\n            observers: {}\n          };\n        } // check if script loading already\n\n        if (SCRIPT_MAP[scriptURL]) {\n          var entry = SCRIPT_MAP[scriptURL]; // if loaded or errored then \"finish\"\n\n          if (entry && (entry.loaded || entry.errored)) {\n            this.asyncScriptLoaderHandleLoad(entry);\n            return;\n          } // if still loading then callback to observer queue\n\n          entry.observers[key] = function (entry) {\n            return _this3.asyncScriptLoaderHandleLoad(entry);\n          };\n          return;\n        }\n        /*\n         * hasn't started loading\n         * start the \"magic\"\n         * setup script to load and observers\n         */\n\n        var observers = {};\n        observers[key] = function (entry) {\n          return _this3.asyncScriptLoaderHandleLoad(entry);\n        };\n        SCRIPT_MAP[scriptURL] = {\n          loaded: false,\n          observers: observers\n        };\n        var script = document.createElement(\"script\");\n        script.src = scriptURL;\n        script.async = true;\n        for (var attribute in options.attributes) {\n          script.setAttribute(attribute, options.attributes[attribute]);\n        }\n        if (scriptId) {\n          script.id = scriptId;\n        }\n        var callObserverFuncAndRemoveObserver = function callObserverFuncAndRemoveObserver(func) {\n          if (SCRIPT_MAP[scriptURL]) {\n            var mapEntry = SCRIPT_MAP[scriptURL];\n            var observersMap = mapEntry.observers;\n            for (var obsKey in observersMap) {\n              if (func(observersMap[obsKey])) {\n                delete observersMap[obsKey];\n              }\n            }\n          }\n        };\n        if (callbackName && typeof window !== \"undefined\") {\n          window[callbackName] = function () {\n            return _this3.asyncScriptLoaderTriggerOnScriptLoaded();\n          };\n        }\n        script.onload = function () {\n          var mapEntry = SCRIPT_MAP[scriptURL];\n          if (mapEntry) {\n            mapEntry.loaded = true;\n            callObserverFuncAndRemoveObserver(function (observer) {\n              if (callbackName) {\n                return false;\n              }\n              observer(mapEntry);\n              return true;\n            });\n          }\n        };\n        script.onerror = function () {\n          var mapEntry = SCRIPT_MAP[scriptURL];\n          if (mapEntry) {\n            mapEntry.errored = true;\n            callObserverFuncAndRemoveObserver(function (observer) {\n              observer(mapEntry);\n              return true;\n            });\n          }\n        };\n        document.body.appendChild(script);\n      };\n      _proto.componentWillUnmount = function componentWillUnmount() {\n        // Remove tag script\n        var scriptURL = this.__scriptURL;\n        if (options.removeOnUnmount === true) {\n          var allScripts = document.getElementsByTagName(\"script\");\n          for (var i = 0; i < allScripts.length; i += 1) {\n            if (allScripts[i].src.indexOf(scriptURL) > -1) {\n              if (allScripts[i].parentNode) {\n                allScripts[i].parentNode.removeChild(allScripts[i]);\n              }\n            }\n          }\n        } // Clean the observer entry\n\n        var mapEntry = SCRIPT_MAP[scriptURL];\n        if (mapEntry) {\n          delete mapEntry.observers[this.asyncScriptLoaderGetScriptLoaderID()];\n          if (options.removeOnUnmount === true) {\n            delete SCRIPT_MAP[scriptURL];\n          }\n        }\n      };\n      _proto.render = function render() {\n        var globalName = options.globalName; // remove asyncScriptOnLoad from childProps\n\n        var _this$props = this.props,\n          asyncScriptOnLoad = _this$props.asyncScriptOnLoad,\n          forwardedRef = _this$props.forwardedRef,\n          childProps = _objectWithoutPropertiesLoose(_this$props, [\"asyncScriptOnLoad\", \"forwardedRef\"]); // eslint-disable-line no-unused-vars\n\n        if (globalName && typeof window !== \"undefined\") {\n          childProps[globalName] = typeof window[globalName] !== \"undefined\" ? window[globalName] : undefined;\n        }\n        childProps.ref = forwardedRef;\n        return createElement(WrappedComponent, childProps);\n      };\n      return AsyncScriptLoader;\n    }(Component); // Note the second param \"ref\" provided by React.forwardRef.\n    // We can pass it along to AsyncScriptLoader as a regular prop, e.g. \"forwardedRef\"\n    // And it can then be attached to the Component.\n\n    var ForwardedComponent = forwardRef(function (props, ref) {\n      return createElement(AsyncScriptLoader, _extends({}, props, {\n        forwardedRef: ref\n      }));\n    });\n    ForwardedComponent.displayName = \"AsyncScriptLoader(\" + wrappedComponentName + \")\";\n    ForwardedComponent.propTypes = {\n      asyncScriptOnLoad: PropTypes.func\n    };\n    return hoistStatics(ForwardedComponent, WrappedComponent);\n  };\n}","import ReCAPTCHA from \"./recaptcha\";\nimport makeAsyncScriptLoader from \"react-async-script\";\nvar callbackName = \"onloadcallback\";\nvar globalName = \"grecaptcha\";\nfunction getOptions() {\n  return typeof window !== \"undefined\" && window.recaptchaOptions || {};\n}\nfunction getURL() {\n  var dynamicOptions = getOptions();\n  var hostname = dynamicOptions.useRecaptchaNet ? \"recaptcha.net\" : \"www.google.com\";\n  if (dynamicOptions.enterprise) {\n    return \"https://\" + hostname + \"/recaptcha/enterprise.js?onload=\" + callbackName + \"&render=explicit\";\n  }\n  return \"https://\" + hostname + \"/recaptcha/api.js?onload=\" + callbackName + \"&render=explicit\";\n}\nexport default makeAsyncScriptLoader(getURL, {\n  callbackName: callbackName,\n  globalName: globalName,\n  attributes: getOptions().nonce ? {\n    nonce: getOptions().nonce\n  } : {}\n})(ReCAPTCHA);","import RecaptchaWrapper from \"./recaptcha-wrapper\";\nimport ReCAPTCHA from \"./recaptcha\";\nexport default RecaptchaWrapper;\nexport { ReCAPTCHA };","import React, { useEffect, useState } from \"react\"\nimport { CustomFormFieldsFragment, CustomFormsConfigurationFieldsFragment } from \"../../../graphql-types\"\nimport * as styles from \"./custom-form.module.scss\"\nimport * as inputsStyles from \"../layout/inputs.module.scss\"\nimport { graphql } from \"gatsby\"\nimport Input, { ValidationType } from \"../layout/form/input\"\nimport Textarea from \"../layout/form/textarea\"\nimport RadioButton from \"../layout/form/radio-button\"\nimport Checkbox from \"../layout/form/checkbox\"\nimport Select from \"../layout/form/select\"\nimport RichDatoCmsContent from \"../rich-datocms-content/rich-datocms-content\"\nimport FileInput from \"../layout/form/file-input\"\nimport { useForm } from \"react-hook-form\"\nimport FormError from \"../layout/form/form-error\"\nimport { sendEmail } from \"../../api/notifications\"\nimport { formToText } from \"./form-to-text\"\nimport { pushGtmEvent } from \"../../gtm/interaction-event\"\nimport { getFieldName } from \"./field-name-checker\"\nimport ReCAPTCHA from \"react-google-recaptcha\"\n\ntype RenderProps = {\n  data: CustomFormFieldsFragment\n  configuration: CustomFormsConfigurationFieldsFragment\n  formCaptchaKey: string\n}\n\nconst CustomForm: React.FC<RenderProps> = ({ data, configuration, formCaptchaKey }) => {\n  const {\n    register,\n    handleSubmit,\n    formState: { errors },\n  } = useForm<FormData>()\n  const [formValues, setFormValues] = useState<Map<string, string | boolean | FileList>>(new Map())\n  const [formState, setFormState] = useState<FormState>(FormState.Pending)\n  const [firstClick, setFirstClick] = useState(true)\n  const [captchaValue, setCaptchaValue] = useState(\"\")\n\n  useEffect(() => {\n    const getTextWidth = (text: string, inputElement: HTMLElement) => {\n      const span = document.createElement(\"span\")\n      span.textContent = text\n      span.style.visibility = \"hidden\"\n      span.style.font = window.getComputedStyle(inputElement).font\n      document.body.appendChild(span)\n      const width = span.offsetWidth\n      document.body.removeChild(span)\n      return width\n    }\n\n    const textFields = document.querySelectorAll(`.${styles.textField}`) as NodeListOf<HTMLElement>\n    textFields.forEach(textField => {\n      const placeholderWidth = getTextWidth(textField.getAttribute(\"placeholder\") || \"\", textField)\n      const inputWidth = (textField as HTMLElement).offsetWidth\n\n      if (placeholderWidth + 20 > inputWidth) {\n        textField.style.maxWidth = placeholderWidth + 20 + \"px\"\n      }\n    })\n  }, [])\n\n  function onChange(fieldId, value) {\n    const newValues = new Map(formValues)\n    newValues.set(fieldId, value)\n    setFormValues(newValues)\n  }\n\n  function pushGtmFirstClickEvent() {\n    if (firstClick) {\n      pushGtmEvent(\"Form\", \"Form\", \"Form 1st click\", data.title)\n      setFirstClick(false)\n    }\n  }\n\n  function onSubmit(formData) {\n    const submitForm = () => {\n      pushGtmEvent(\"eventga\", \"Form\", \"Form Submit\", data.title)\n      const userEmailContent = formToText(configuration, data.userEmailContent, data.fieldsList, formData).replace(\n        /&apos;/g,\n        \"'\"\n      )\n      const subsidiaryEmailContent = formToText(\n        configuration,\n        data.subsidiaryEmailContent,\n        data.fieldsList,\n        formData\n      ).replace(/&apos;/g, \"'\")\n\n      const notEmptyEmailFieldIds = data.fieldsList\n        .filter(field => field.__typename === \"DatoCmsUserEmailField\")\n        .map(field => field.id)\n        .filter(fieldId => !!formData[fieldId])\n      const notEmptyFiles = data.fieldsList\n        .filter(field => field.__typename === \"DatoCmsFileField\")\n        .map(field => field.id)\n        .filter(fieldId => !!formData[fieldId] && !!formData[fieldId][0])\n        .map(fieldId => formData[fieldId][0])\n\n      setFormState(FormState.Submitting)\n      let emailFieldValue = notEmptyEmailFieldIds.filter(emailFieldId => formData[emailFieldId])\n      const emailPromise = sendEmail(\n        data.from,\n        data.receivers,\n        data.subsidiaryEmailSubject,\n        subsidiaryEmailContent,\n        notEmptyFiles,\n        formData[emailFieldValue[0]]\n      )\n      const userEmailPromises = notEmptyEmailFieldIds.map(emailFieldId =>\n        sendEmail(\n          data.from,\n          [{ email: formData[emailFieldId], sendType: \"Principal\" }],\n          data.userEmailSubject,\n          userEmailContent,\n          notEmptyFiles,\n          formData[emailFieldId]\n        )\n      )\n\n      return Promise.all([emailPromise, ...userEmailPromises]).then(\n        () => setFormState(FormState.Success),\n        () => setFormState(FormState.Error)\n      )\n    }\n\n    // if (!formCaptchaKey || (formCaptchaKey && captchaValue)) submitForm()\n\n    submitForm()\n  }\n\n  return (\n    <form className={styles.customForm} onSubmit={handleSubmit(onSubmit)} noValidate={true}>\n      <h2 className={styles.title}>{data.title}</h2>\n      {data.fieldsList.map(field => {\n        switch (field.__typename) {\n          case \"DatoCmsSingleLineTextField\":\n            field.id = getFieldName(field.name) != undefined ? getFieldName(field.name) : field.id\n            const validationType = toValidationType(field.format)\n            return (\n              <div className={inputsStyles.formPart + \" \" + styles.formPart} key={field.id}>\n                <label\n                  htmlFor={field.id}\n                  className={inputsStyles.label + (field.mandatory ? \" \" + inputsStyles.labelRequired : \"\")}\n                >\n                  {field.name}\n                </label>\n                <Input\n                  id={field.id}\n                  type=\"text\"\n                  name={field.id}\n                  autocomplete={getFieldName(field.name) !== undefined}\n                  placeholder={field.placeholder}\n                  required={field.mandatory}\n                  className={styles.textField}\n                  aria-describedby=\"singleLineErrorDesc\"\n                  /*                   value={(formValues.get(field.id) as string) || \"\"}\n                  onChange={value => onChange(field.id, value)} */\n                  register={register}\n                  validationType={validationType}\n                  hasErrors={!!errors[field.id]}\n                  onFocus={pushGtmFirstClickEvent}\n                />\n                <FormError errors={errors} name={field.id} type=\"required\">\n                  {configuration.requiredFieldError}\n                </FormError>\n                {validationType === ValidationType.PhoneNumber && (\n                  <FormError errors={errors} name={field.id} type=\"pattern\" id=\"singleLineErrorDesc\">\n                    {configuration.phoneNumberFieldError}\n                  </FormError>\n                )}\n                {validationType === ValidationType.Email && (\n                  <FormError errors={errors} name={field.id} type=\"pattern\" id=\"singleLineErrorDesc\">\n                    {configuration.emailFieldError}\n                  </FormError>\n                )}\n              </div>\n            )\n\n          case \"DatoCmsUserEmailField\":\n            field.id = getFieldName(field.name) != undefined ? getFieldName(field.name) : field.id\n            return (\n              <div className={inputsStyles.formPart + \" \" + styles.formPart} key={field.id}>\n                <label\n                  htmlFor={field.id}\n                  className={inputsStyles.label + (field.mandatory ? \" \" + inputsStyles.labelRequired : \"\")}\n                >\n                  {field.name}\n                </label>\n                <Input\n                  id={field.id}\n                  type=\"text\"\n                  name={field.id}\n                  autocomplete={getFieldName(field.name) !== undefined}\n                  placeholder={field.placeholder}\n                  required={field.mandatory}\n                  className={styles.textField}\n                  /*                   value={(formValues.get(field.id) as string) || \"\"}\n                  onChange={value => onChange(field.id, value)} */\n                  register={register}\n                  validationType={ValidationType.Email}\n                  hasErrors={!!errors[field.id]}\n                  aria-describedby=\"emailErrorDesc\"\n                  onFocus={pushGtmFirstClickEvent}\n                />\n                <FormError errors={errors} name={field.id} type=\"required\">\n                  {configuration.requiredFieldError}\n                </FormError>\n                <FormError errors={errors} name={field.id} type=\"pattern\" id=\"emailErrorDesc\">\n                  {configuration.emailFieldError}\n                </FormError>\n              </div>\n            )\n\n          case \"DatoCmsMultiLinesTextField\":\n            return (\n              <div className={inputsStyles.formPart + \" \" + styles.formPart} key={field.id}>\n                <label\n                  htmlFor={field.id}\n                  className={inputsStyles.label + (field.mandatory ? \" \" + inputsStyles.labelRequired : \"\")}\n                >\n                  {field.name}\n                </label>\n                <Textarea\n                  id={field.id}\n                  name={field.id}\n                  placeholder={field.placeholder}\n                  required={field.mandatory}\n                  /*                   value={(formValues.get(field.id) as string) || \"\"}\n                  onChange={value => onChange(field.id, value)} */\n                  hasErrors={!!errors[field.id]}\n                  register={register}\n                  onFocus={pushGtmFirstClickEvent}\n                />\n                <FormError errors={errors} name={field.id} type=\"required\">\n                  {configuration.requiredFieldError}\n                </FormError>\n              </div>\n            )\n\n          case \"DatoCmsRadioButtonsField\":\n            return (\n              <fieldset className={inputsStyles.formPart + \" \" + styles.formPart} key={field.id}>\n                <legend className={inputsStyles.label + (field.mandatory ? \" \" + inputsStyles.labelRequired : \"\")}>\n                  {field.name}\n                </legend>\n                <div className={inputsStyles.radioButtons}>\n                  {(JSON.parse(field.options) as string[]).map((option, index) => (\n                    <RadioButton\n                      key={index}\n                      id={field.id + index}\n                      label={option}\n                      name={field.id}\n                      required={field.mandatory}\n                      value={option}\n                      //checked={option === formValues.get(field.id)}\n                      //onChange={value => onChange(field.id, value)}\n                      hasErrors={!!errors[field.id]}\n                      register={register}\n                      onFocus={pushGtmFirstClickEvent}\n                    />\n                  ))}\n                </div>\n                <FormError errors={errors} name={field.id} type=\"required\">\n                  {configuration.requiredFieldError}\n                </FormError>\n              </fieldset>\n            )\n\n          case \"DatoCmsCheckboxField\":\n            return (\n              <div className={inputsStyles.formPart + \" \" + styles.formPart} key={field.id}>\n                <Checkbox\n                  key={field.id}\n                  id={field.id}\n                  label={field.name}\n                  name={field.id}\n                  required={field.mandatory}\n                  //checked={!!formValues.get(field.id)}\n                  //onChange={value => onChange(field.id, value)}\n                  hasErrors={!!errors[field.id]}\n                  register={register}\n                  onFocus={pushGtmFirstClickEvent}\n                />\n                <FormError errors={errors} name={field.id} type=\"required\">\n                  {configuration.requiredFieldError}\n                </FormError>\n              </div>\n            )\n\n          case \"DatoCmsFileField\":\n            return (\n              <div className={inputsStyles.formPart + \" \" + styles.formPart} key={field.id}>\n                <label\n                  htmlFor={field.id}\n                  className={inputsStyles.label + (field.mandatory ? \" \" + inputsStyles.labelRequired : \"\")}\n                >\n                  {field.name}\n                </label>\n                <FileInput\n                  key={field.id}\n                  id={field.id}\n                  type=\"file\"\n                  name={field.id}\n                  placeholder={field.placeholder}\n                  required={field.mandatory}\n                  onChange={value => onChange(field.id, value)}\n                  className={styles.fileField}\n                  register={register}\n                  onFocus={pushGtmFirstClickEvent}\n                />\n                <FormError errors={errors} name={field.id} type=\"required\">\n                  {configuration.requiredFieldError}\n                </FormError>\n              </div>\n            )\n\n          case \"DatoCmsSelectField\":\n            return (\n              <div className={inputsStyles.formPart + \" \" + styles.formPart} key={field.id}>\n                <label\n                  htmlFor={field.id}\n                  className={inputsStyles.label + (field.mandatory ? \" \" + inputsStyles.labelRequired : \"\")}\n                >\n                  {field.name}\n                </label>\n                <Select\n                  key={field.id}\n                  id={field.id}\n                  name={field.id}\n                  autocomplete={getFieldName(field.name) !== undefined}\n                  options={JSON.parse(field.options)}\n                  required={field.mandatory}\n                  /*                   value={(formValues.get(field.id) as string) || \"\"}\n                  onChange={value => onChange(field.id, value)} */\n                  className={styles.select}\n                  hasErrors={!!errors[field.id]}\n                  register={register}\n                  onFocus={pushGtmFirstClickEvent}\n                />\n                <FormError errors={errors} name={field.id} type=\"required\">\n                  {configuration.requiredFieldError}\n                </FormError>\n              </div>\n            )\n\n          case \"DatoCmsSimpleText\":\n            return <RichDatoCmsContent key={field.id} data={[field]} />\n        }\n      })}\n\n      {formCaptchaKey && <ReCAPTCHA sitekey={formCaptchaKey} onChange={onChangeCaptcha} />}\n\n      <button\n        type=\"submit\"\n        className={inputsStyles.primaryButton + \" \" + styles.submitButton}\n        disabled={formState === FormState.Submitting || formState === FormState.Success}\n      >\n        {data.submitButtonLabel}\n      </button>\n      {formState === FormState.Error && (\n        <div className={inputsStyles.formError + \" \" + styles.globalError}>{data.formError}</div>\n      )}\n      {formState === FormState.Success && <div className={styles.successMessage}>{data.successMessage}</div>}\n    </form>\n  )\n\n  function onChangeCaptcha(value) {\n    setCaptchaValue(value)\n  }\n}\n\nexport default CustomForm\n\nexport const fragments = graphql`\n  fragment CustomFormFields on DatoCmsForm {\n    title\n    submitButtonLabel\n    from\n    receivers {\n      ...EmailReceiversFields\n    }\n    successMessage\n    formError\n    subsidiaryEmailSubject\n    subsidiaryEmailContent {\n      value\n      blocks\n      links {\n        id: originalId\n        fragmentType\n      }\n    }\n    userEmailSubject\n    userEmailContent {\n      value\n      blocks\n      links {\n        id: originalId\n        fragmentType\n      }\n    }\n    fieldsList {\n      __typename\n      ... on DatoCmsSingleLineTextField {\n        id\n        name\n        placeholder\n        mandatory\n        format\n      }\n      ... on DatoCmsMultiLinesTextField {\n        id\n        name\n        placeholder\n        mandatory\n      }\n      ... on DatoCmsRadioButtonsField {\n        id\n        name\n        mandatory\n        options\n      }\n      ... on DatoCmsCheckboxField {\n        id\n        name\n        mandatory\n      }\n      ... on DatoCmsFileField {\n        id\n        name\n        mandatory\n        placeholder\n      }\n      ... on DatoCmsSelectField {\n        id\n        name\n        mandatory\n        options\n      }\n      ... on DatoCmsUserEmailField {\n        id\n        name\n        placeholder\n        mandatory\n      }\n      ... on DatoCmsSimpleText {\n        ...SimpleTextFields\n      }\n    }\n  }\n\n  fragment EmailReceiversFields on DatoCmsEmailReceiversBlock {\n    email\n    sendType\n  }\n\n  fragment CustomFormsConfigurationFields on DatoCmsFormsConfiguration {\n    requiredFieldError\n    phoneNumberFieldError\n    emailFieldError\n    logoSubsidiary {\n      alt\n      url\n    }\n  }\n`\n\nfunction toValidationType(format: string) {\n  switch (format) {\n    case \"Email\":\n      return ValidationType.Email\n    case \"Phone number\":\n      return ValidationType.PhoneNumber\n    default:\n      return ValidationType.None\n  }\n}\n\nenum FormState {\n  Pending,\n  Submitting,\n  Success,\n  Error,\n}\n","// extracted by mini-css-extract-plugin\nexport var mainMenuLabel = \"website-map-module--mainMenuLabel--ba384\";\nexport var menu = \"website-map-module--menu--9a0e0\";\nexport var submenulabel = \"website-map-module--submenulabel--aeae9\";\nexport var websiteMap = \"website-map-module--websiteMap--67ff8\";","import React from \"react\"\nimport { FooterMenuFieldsFragment, HeaderMenuFieldsFragment } from \"../../../graphql-types\"\nimport * as styles from \"./website-map.module.scss\"\n\ntype RenderProps = {\n  menuData: HeaderMenuFieldsFragment & FooterMenuFieldsFragment\n}\n\nconst WebsiteMap: React.FC<RenderProps> = ({ menuData }) => {\n  const buildWebsiteMapMenu = (mainMenuLabel: string, mainMenuPage, submenu) => {\n    const shouldDisplaySubmenu = (submenuItem): boolean => {\n      return submenuItem.page && (submenuItem.headerDisplay || submenuItem.footerDisplay)\n    }\n\n    return (\n      <li className={styles.menu}>\n        {mainMenuPage && mainMenuPage.slug ? (\n          <a className={styles.mainMenuLabel} href={`/${mainMenuPage.slug}`}>\n            {mainMenuLabel}\n          </a>\n        ) : (\n          <a className={styles.mainMenuLabel} href=\"#\">\n            {mainMenuLabel}\n          </a>\n        )}\n        {submenu &&\n          submenu.filter(shouldDisplaySubmenu).map(submenuItem => (\n            <a key={submenuItem.id} className={styles.submenulabel} href={`/${submenuItem.page.slug}`}>\n              {submenuItem.label}\n            </a>\n          ))}\n      </li>\n    )\n  }\n\n  return (\n    <ul className={styles.websiteMap}>\n      {(menuData.headerDisplay1 || menuData.footerDisplay1) &&\n        buildWebsiteMapMenu(menuData.label, menuData.page, menuData.column1)}\n      {(menuData.headerDisplay2 || menuData.footerDisplay2) &&\n        buildWebsiteMapMenu(menuData.label2, menuData.page2, menuData.column2)}\n      {(menuData.headerDisplay3 || menuData.footerDisplay3) &&\n        buildWebsiteMapMenu(menuData.label3, menuData.page3, menuData.column3)}\n      {(menuData.headerDisplay4 || menuData.footerDisplay4) &&\n        buildWebsiteMapMenu(menuData.label4, menuData.page4, menuData.column4)}\n      {(menuData.headerDisplay5 || menuData.footerDisplay5) &&\n        buildWebsiteMapMenu(menuData.label5, menuData.page5, menuData.column5)}\n    </ul>\n  )\n}\n\nexport default WebsiteMap\n","// extracted by mini-css-extract-plugin\nexport var formPart = \"lost-objects-form-module--formPart--35e5a\";\nexport var globalError = \"lost-objects-form-module--globalError--c19e3\";\nexport var submitButton = \"lost-objects-form-module--submitButton--b4abe\";\nexport var successMessage = \"lost-objects-form-module--successMessage--02d67\";\nexport var title = \"lost-objects-form-module--title--17afa\";","import { toDate } from \"./toDate.mjs\";\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 */\nexport function getYear(date) {\n  return toDate(date).getFullYear();\n}\n\n// Fallback for modularized imports:\nexport default getYear;","import { toDate } from \"./toDate.mjs\";\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 */\nexport function getMonth(date) {\n  var _date = toDate(date);\n  var month = _date.getMonth();\n  return month;\n}\n\n// Fallback for modularized imports:\nexport default getMonth;","import * as inputsStyles from \"../inputs.module.scss\"\nimport React, { ReactElement, useState } from \"react\"\nimport { Control } from \"react-hook-form/dist/types\"\nimport { Controller } from \"react-hook-form\"\nimport DatePicker from \"react-datepicker\"\nimport * as config from \"../../../../config\"\nimport { getYear, getMonth } from \"date-fns\"\n\ntype RenderProps = {\n  id?: string\n  name: string\n  required?: boolean\n  className?: string\n  hasErrors?: boolean\n  minDate?: Date\n  maxDate?: Date\n  previousMonthAlt?: string\n  nextMonthAlt?: string\n  isItineraryForm?: boolean\n  onFocus?: (value: any) => void\n  autocomplete?: boolean\n} & (\n  | {\n      valueSelected?: string\n      onChange?: (value: string) => void\n      control: Control\n    }\n  | { valueSelected: string; onChange: (value: string) => void; control?: Control }\n)\n\nconst DateInput: React.FC<RenderProps> = ({\n  id,\n  name,\n  required,\n  className = \"\",\n  valueSelected,\n  onChange,\n  control,\n  hasErrors,\n  minDate,\n  maxDate,\n  previousMonthAlt,\n  nextMonthAlt,\n  onFocus,\n  isItineraryForm,\n  autocomplete,\n}) => {\n  const [startDate, setStartDate] = useState(new Date())\n  const years = Array.from(new Array(101), (elemValue, index) => getYear(new Date()) - index)\n\n  const months = [\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  return wrapWithController(name, control, valueSelected, ({ handleChange, handleBlur, value }) =>\n    id != \"birthdateField\" ? (\n      <DatePicker\n        id={id}\n        name={name}\n        className={inputsStyles.input + \" \" + (hasErrors ? inputsStyles.fieldInError + \" \" : \"\") + className}\n        // condition true == only for Aixenbus subsidiary Le Pilote itinerary search\n        selected={!isItineraryForm ? value : value || new Date()}\n        onChange={val => {\n          handleChange(val)\n          onChange && onChange(val)\n        }}\n        onBlur={handleBlur}\n        dateFormat={config.date_format[config.locale]}\n        minDate={minDate}\n        maxDate={maxDate}\n        required={required}\n        autoComplete={autocomplete ? name : undefined}\n        onFocus={event => {\n          onFocus && onFocus(event.target.id)\n        }}\n      />\n    ) : (\n      <DatePicker\n        className={inputsStyles.input + \" \" + (hasErrors ? inputsStyles.fieldInError + \" \" : \"\") + className}\n        onFocus={event => {\n          onFocus && onFocus(event.target.id)\n        }}\n        maxDate={maxDate}\n        renderCustomHeader={({\n          date,\n          changeYear,\n          changeMonth,\n          decreaseMonth,\n          increaseMonth,\n          prevMonthButtonDisabled,\n          nextMonthButtonDisabled,\n        }) => (\n          <div\n            style={{\n              margin: 10,\n              display: \"flex\",\n              justifyContent: \"center\",\n            }}\n          >\n            <button onClick={decreaseMonth} disabled={prevMonthButtonDisabled} title={previousMonthAlt}>\n              {\"<\"}\n            </button>\n            <select value={getYear(date)} onChange={({ target: { value } }) => changeYear(value)}>\n              {years.map(option => (\n                <option key={option} value={option}>\n                  {option}\n                </option>\n              ))}\n            </select>\n\n            <select\n              value={months[getMonth(date)]}\n              onChange={({ target: { value } }) => changeMonth(months.indexOf(value))}\n            >\n              {months.map(option => (\n                <option key={option} value={option}>\n                  {option}\n                </option>\n              ))}\n            </select>\n\n            <button onClick={increaseMonth} disabled={nextMonthButtonDisabled} title={nextMonthAlt}>\n              {\">\"}\n            </button>\n          </div>\n        )}\n        selected={startDate}\n        onChange={date => setStartDate(date)}\n        autoComplete={autocomplete ? name : undefined}\n      />\n    )\n  )\n}\n\nfunction wrapWithController<T>(\n  name: string,\n  control: Control | null,\n  value: T | null,\n  renderInput: ({ handleChange, handleBlur, value }) => ReactElement\n) {\n  if (!control) {\n    return renderInput({ handleChange: () => {}, handleBlur: () => {}, value })\n  }\n  return (\n    <Controller\n      control={control}\n      name={name}\n      render={({ field: { onChange, onBlur, value } }) =>\n        renderInput({\n          handleChange: onChange,\n          handleBlur: onBlur,\n          value: value,\n        })\n      }\n    />\n  )\n}\n\nexport default DateInput\n","import * as inputsStyles from \"../inputs.module.scss\"\nimport React, { ReactElement } from \"react\"\nimport { Control } from \"react-hook-form/dist/types\"\nimport { Controller } from \"react-hook-form\"\nimport DatePicker from \"react-datepicker\"\nimport * as config from \"../../../../config\"\n\ntype RenderProps = {\n  id?: string\n  name: string\n  required?: boolean\n  className?: string\n  hasErrors?: boolean\n  isItineraryForm?: boolean\n  timeValue?: Date\n  onFocus?: (value: any) => void\n} & (\n  | {\n      value?: string\n      onChange?: (value: string) => void\n      control: Control\n    }\n  | { value: string; onChange: (value: string) => void; control?: Control }\n)\n\nconst TimeInput: React.FC<RenderProps> = ({\n  id,\n  name,\n  required,\n  className = \"\",\n  value,\n  onChange,\n  control,\n  hasErrors,\n  onFocus,\n  isItineraryForm,\n  timeValue,\n}) => {\n  return wrapWithController(name, control, value, ({ handleChange, handleBlur, value }) => (\n    <DatePicker\n      id={id}\n      name={name}\n      className={inputsStyles.input + \" \" + (hasErrors ? inputsStyles.fieldInError + \" \" : \"\") + className}\n      showTimeSelect\n      showTimeSelectOnly\n      // condition true == only for Aixenbus subsidiary Le Pilote itinerary search\n      selected={!isItineraryForm ? value : value || timeValue}\n      onChange={value => {\n        handleChange(value)\n        onChange && onChange(value)\n      }}\n      onBlur={handleBlur}\n      dateFormat={config.time_format[config.locale]}\n      required={required}\n      autoComplete=\"off\"\n      onFocus={event => {\n        onFocus && onFocus(event.target.id)\n      }}\n    />\n  ))\n}\n\nfunction wrapWithController<T>(\n  name: string,\n  control: Control | null,\n  value: T | null,\n  renderInput: ({ handleChange, handleBlur, value }) => ReactElement\n) {\n  if (!control) {\n    return renderInput({ handleChange: () => {}, handleBlur: () => {}, value })\n  }\n  return (\n    <Controller\n      control={control}\n      name={name}\n      render={({ field: { onChange, onBlur, value } }) =>\n        renderInput({\n          handleChange: onChange,\n          handleBlur: onBlur,\n          value: value,\n        })\n      }\n    />\n  )\n}\n\nexport default TimeInput\n","import {\n  DatoCmsDatoCmsLostObjectsFormConfigurationSubsidiaryEmailContentStructuredText,\n  DatoCmsDatoCmsLostObjectsFormConfigurationUserEmailContentStructuredText,\n  LostObjectsFormConfigurationFieldsFragment,\n} from \"../../../graphql-types\"\nimport { render } from \"datocms-structured-text-to-html-string\"\nimport { StructuredText as StructuredTextGraphQlResponse } from \"datocms-structured-text-utils/dist/types/types\"\nimport { format } from \"date-fns\"\nimport * as config from \"../../../config\"\nimport sanitizeHtml from \"sanitize-html\"\nimport { decode } from \"html-entities\"\n\nexport function lostObjectsFormToText(\n  content:\n    | DatoCmsDatoCmsLostObjectsFormConfigurationUserEmailContentStructuredText\n    | DatoCmsDatoCmsLostObjectsFormConfigurationSubsidiaryEmailContentStructuredText,\n  moduleConfiguration: LostObjectsFormConfigurationFieldsFragment,\n  values: { [key: string]: any }\n) {\n  const renderFormContent = (renderNode, renderText) => {\n    return [\n      {\n        label: moduleConfiguration.nameFieldLabel,\n        value: values[\"family-name\"],\n      },\n      {\n        label: moduleConfiguration.firstnameFieldLabel,\n        value: values[\"given-name\"],\n      },\n      { label: moduleConfiguration.addressFieldLabel, value: values.address },\n      {\n        label: moduleConfiguration.zipCodeFieldLabel,\n        value: values[\"postal-code\"],\n      },\n      { label: moduleConfiguration.cityFieldLabel, value: values.city },\n      { label: moduleConfiguration.phoneFieldLabel, value: values.tel },\n      { label: moduleConfiguration.emailFieldLabel, value: values.email },\n      {\n        label: moduleConfiguration.dateFieldLabel,\n        value: values.date && format(values.date, config.date_format[config.locale]),\n      },\n      {\n        label: moduleConfiguration.timeFieldLabel,\n        value: values.time && format(values.time, config.time_format[config.locale]),\n      },\n      {\n        label: moduleConfiguration.lineFieldLabel,\n        value: values.line && values.line.name,\n      },\n      {\n        label: moduleConfiguration.directionFieldLabel,\n        value: values.direction,\n      },\n      { label: moduleConfiguration.stopFieldLabel, value: values.stop },\n      { label: moduleConfiguration.messageFieldLabel, value: values.message },\n    ].map(({ label, value }) => {\n      return renderNode(\"tr\", {}, [\n        renderNode(\"th\", {}, renderText(decode(cleanHtmlTags(label)))),\n        renderNode(\"td\", {}, renderText(decode(cleanHtmlTags(value)))),\n      ])\n    })\n  }\n  const options = {\n    renderBlock(block) {\n      if (block.fragmentType === \"Email content\") {\n        return block.renderNode(\"table\", {}, renderFormContent(block.adapter.renderNode, block.adapter.renderText))\n      } else {\n        console.log(\"Unhandled fragment: \" + block.fragmentType)\n      }\n    },\n    renderInlineRecord({ record: block, adapter: { renderNode, renderText } }) {\n      if (block.fragmentType === \"Form content\") {\n        return renderNode(\"table\", {}, renderFormContent(renderNode, renderText))\n      } else {\n        console.log(\"Unhandled fragment: \" + block.fragmentType)\n      }\n    },\n  }\n  return render(content as unknown as StructuredTextGraphQlResponse, options)\n}\n\nfunction cleanHtmlTags(value: string) {\n  return sanitizeHtml(value, {\n    allowedTags: [],\n    allowedAttributes: {},\n  })\n}\n","import React, { useState } from \"react\"\nimport {\n  LostObjectsFormLineFieldsFragment,\n  LostObjectsFormConfigurationFieldsFragment,\n  CustomFormsConfigurationFieldsFragment,\n} from \"../../../graphql-types\"\nimport { graphql } from \"gatsby\"\nimport * as styles from \"./lost-objects-form.module.scss\"\nimport { useForm } from \"react-hook-form\"\nimport Input, { ValidationType } from \"../layout/form/input\"\nimport * as inputsStyles from \"../layout/inputs.module.scss\"\nimport FormError from \"../layout/form/form-error\"\nimport Select from \"../layout/form/select\"\nimport Autocomplete from \"../autocomplete/autocomplete\"\nimport Textarea from \"../layout/form/textarea\"\nimport DateInput from \"../layout/form/date-input\"\nimport TimeInput from \"../layout/form/time-input\"\nimport { sendEmail } from \"../../api/notifications\"\nimport { lostObjectsFormToText } from \"./lost-objects-form-to-text\"\nimport { pushGtmEvent } from \"../../gtm/interaction-event\"\nimport FileInput from \"../layout/form/file-input\"\n\ntype Line = LostObjectsFormLineFieldsFragment\n\ntype RenderProps = {\n  title: string\n  lines: Line[]\n  moduleConfiguration: LostObjectsFormConfigurationFieldsFragment\n  formsConfiguration: CustomFormsConfigurationFieldsFragment\n}\n\nconst LostObjectsForm: React.FC<RenderProps> = ({ title, lines, moduleConfiguration, formsConfiguration }) => {\n  const civilityOptions = JSON.parse(moduleConfiguration.civilityOptions)\n  const [formState, setFormState] = useState<FormState>(FormState.Pending)\n  const {\n    control,\n    register,\n    handleSubmit,\n    formState: { errors },\n  } = useForm<FormData>()\n  const [firstClick, setFirstClick] = useState(true)\n  const [formValues, setFormValues] = useState<Map<string, string | boolean | FileList>>(new Map())\n\n  function searchLine(query: string): LostObjectsFormLineFieldsFragment[] {\n    return lines.filter(result => result.name.toLowerCase().indexOf(query.toLowerCase()) !== -1)\n  }\n\n  function onChange(fieldId, value) {\n    const newValues = new Map(formValues)\n    newValues.set(fieldId, value)\n    setFormValues(newValues)\n  }\n\n  function onSubmit(formData) {\n    pushGtmEvent(\"eventga\", \"Form\", \"Form Submit\", title)\n    const userEmailContent = lostObjectsFormToText(\n      moduleConfiguration.userEmailContent,\n      moduleConfiguration,\n      formData\n    ).replace(/&apos;/g, \"'\")\n    const subsidiaryEmailContent = lostObjectsFormToText(\n      moduleConfiguration.subsidiaryEmailContent,\n      moduleConfiguration,\n      formData\n    ).replace(/&apos;/g, \"'\")\n\n    setFormState(FormState.Submitting)\n    let replyTo = formData.email\n    const files: File[] = Array.from(formData.attachments)\n    const subsidiaryEmailPromise = sendEmail(\n      moduleConfiguration.fromEmail,\n      [{ email: moduleConfiguration.subsidiaryEmail, sendType: \"Principal\" }],\n      moduleConfiguration.subsidiaryEmailSubject,\n      subsidiaryEmailContent,\n      files,\n      replyTo\n    )\n    const userEmailPromise = sendEmail(\n      moduleConfiguration.fromEmail,\n      [{ email: formData.email, sendType: \"Principal\" }],\n      moduleConfiguration.userEmailSubject,\n      userEmailContent,\n      files,\n      replyTo\n    )\n    return Promise.all([subsidiaryEmailPromise, userEmailPromise]).then(\n      () => setFormState(FormState.Success),\n      () => setFormState(FormState.Error)\n    )\n  }\n\n  function pushGtmFirstClickEvent() {\n    if (firstClick) {\n      pushGtmEvent(\"Form\", \"Form\", \"Form 1st click\", title)\n      setFirstClick(false)\n    }\n  }\n\n  return (\n    <form onSubmit={handleSubmit(onSubmit)}>\n      <h2>{title}</h2>\n\n      <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n        <label htmlFor=\"civilityField\" className={inputsStyles.label + \" \" + inputsStyles.labelRequired}>\n          {moduleConfiguration.civilityFieldLabel}\n        </label>\n        <Select\n          id=\"civilityField\"\n          name=\"honorific-prefix\"\n          autocomplete={true}\n          required={true}\n          register={register}\n          options={civilityOptions}\n          hasErrors={!!errors[\"honorific-prefix\"]}\n          onFocus={pushGtmFirstClickEvent}\n        />\n        <FormError errors={errors} name=\"honorific-prefix\" type=\"required\">\n          {formsConfiguration.requiredFieldError}\n        </FormError>\n      </div>\n\n      <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n        <label htmlFor=\"nameField\" className={inputsStyles.label + \" \" + inputsStyles.labelRequired}>\n          {moduleConfiguration.nameFieldLabel}\n        </label>\n        <Input\n          id=\"nameField\"\n          type=\"text\"\n          name=\"family-name\"\n          autocomplete={true}\n          placeholder={moduleConfiguration.nameFieldPlaceholder}\n          required={true}\n          register={register}\n          hasErrors={!!errors[\"name\"]}\n          onFocus={pushGtmFirstClickEvent}\n        />\n        <FormError errors={errors} name=\"name\" type=\"required\">\n          {formsConfiguration.requiredFieldError}\n        </FormError>\n      </div>\n\n      <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n        <label htmlFor=\"firstnameField\" className={inputsStyles.label + \" \" + inputsStyles.labelRequired}>\n          {moduleConfiguration.firstnameFieldLabel}\n        </label>\n        <Input\n          id=\"firstnameField\"\n          type=\"text\"\n          name=\"given-name\"\n          autocomplete={true}\n          placeholder={moduleConfiguration.firstnameFieldPlaceholder}\n          required={true}\n          register={register}\n          hasErrors={!!errors[\"given-name\"]}\n          onFocus={pushGtmFirstClickEvent}\n        />\n        <FormError errors={errors} name=\"given-name\" type=\"required\">\n          {formsConfiguration.requiredFieldError}\n        </FormError>\n      </div>\n\n      <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n        <label htmlFor=\"emailField\" className={inputsStyles.label + \" \" + inputsStyles.labelRequired}>\n          {moduleConfiguration.emailFieldLabel}\n        </label>\n        <Input\n          id=\"emailField\"\n          type=\"text\"\n          name=\"email\"\n          autocomplete={true}\n          placeholder={moduleConfiguration.emailFieldPlaceholder}\n          required={true}\n          register={register}\n          validationType={ValidationType.Email}\n          hasErrors={!!errors[\"email\"]}\n          onFocus={pushGtmFirstClickEvent}\n        />\n        <FormError errors={errors} name=\"email\" type=\"required\">\n          {formsConfiguration.requiredFieldError}\n        </FormError>\n        <FormError errors={errors} name=\"email\" type=\"pattern\">\n          {formsConfiguration.emailFieldError}\n        </FormError>\n      </div>\n\n      <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n        <label htmlFor=\"addressField\" className={inputsStyles.label + \" \" + inputsStyles.labelRequired}>\n          {moduleConfiguration.addressFieldLabel}\n        </label>\n        <Input\n          id=\"addressField\"\n          type=\"text\"\n          name=\"address\"\n          placeholder={moduleConfiguration.addressFieldPlaceholder}\n          required={true}\n          register={register}\n          hasErrors={!!errors[\"address\"]}\n          onFocus={pushGtmFirstClickEvent}\n        />\n        <FormError errors={errors} name=\"address\" type=\"required\">\n          {formsConfiguration.requiredFieldError}\n        </FormError>\n      </div>\n\n      <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n        <label htmlFor=\"zipCodeField\" className={inputsStyles.label + \" \" + inputsStyles.labelRequired}>\n          {moduleConfiguration.zipCodeFieldLabel}\n        </label>\n        <Input\n          id=\"zipCodeField\"\n          type=\"text\"\n          name=\"postal-code\"\n          autocomplete={true}\n          placeholder={moduleConfiguration.zipCodeFieldPlaceholder}\n          required={true}\n          register={register}\n          hasErrors={!!errors[\"postal-code\"]}\n          onFocus={pushGtmFirstClickEvent}\n        />\n        <FormError errors={errors} name=\"postal-code\" type=\"required\">\n          {formsConfiguration.requiredFieldError}\n        </FormError>\n      </div>\n\n      <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n        <label htmlFor=\"cityField\" className={inputsStyles.label + \" \" + inputsStyles.labelRequired}>\n          {moduleConfiguration.cityFieldLabel}\n        </label>\n        <Input\n          id=\"cityField\"\n          type=\"text\"\n          name=\"city\"\n          placeholder={moduleConfiguration.cityFieldPlaceholder}\n          required={true}\n          register={register}\n          hasErrors={!!errors[\"city\"]}\n          onFocus={pushGtmFirstClickEvent}\n        />\n        <FormError errors={errors} name=\"city\" type=\"required\">\n          {formsConfiguration.requiredFieldError}\n        </FormError>\n      </div>\n\n      <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n        <label htmlFor=\"phoneField\" className={inputsStyles.label + \" \" + inputsStyles.labelRequired}>\n          {moduleConfiguration.phoneFieldLabel}\n        </label>\n        <Input\n          id=\"phoneField\"\n          type=\"text\"\n          name=\"tel\"\n          autocomplete={true}\n          placeholder={moduleConfiguration.phoneFieldPlaceholder}\n          required={true}\n          register={register}\n          hasErrors={!!errors[\"tel\"]}\n          onFocus={pushGtmFirstClickEvent}\n        />\n        <FormError errors={errors} name=\"tel\" type=\"required\">\n          {formsConfiguration.requiredFieldError}\n        </FormError>\n      </div>\n\n      <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n        <label htmlFor=\"dateField\" className={inputsStyles.label + \" \" + inputsStyles.labelRequired}>\n          {moduleConfiguration.dateFieldLabel}\n        </label>\n        <DateInput\n          id=\"date\"\n          name=\"date\"\n          required={true}\n          control={control}\n          maxDate={new Date()}\n          onFocus={pushGtmFirstClickEvent}\n        />\n        <FormError errors={errors} name=\"date\" type=\"required\">\n          {formsConfiguration.requiredFieldError}\n        </FormError>\n      </div>\n\n      <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n        <label htmlFor=\"timeField\" className={inputsStyles.label + \" \" + inputsStyles.labelRequired}>\n          {moduleConfiguration.timeFieldLabel}\n        </label>\n        <TimeInput id=\"time\" name=\"time\" required={true} control={control} onFocus={pushGtmFirstClickEvent} />\n        <FormError errors={errors} name=\"time\" type=\"required\">\n          {formsConfiguration.requiredFieldError}\n        </FormError>\n      </div>\n\n      <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n        <label htmlFor=\"lineField\" className={inputsStyles.label + \" \" + inputsStyles.labelRequired}>\n          {moduleConfiguration.lineFieldLabel}\n        </label>\n        <Autocomplete\n          id=\"lineField\"\n          name=\"line\"\n          toLabel={line => line.name}\n          control={control}\n          suggestFunction={searchLine}\n          onFocus={pushGtmFirstClickEvent}\n        />\n        <FormError errors={errors} name=\"phone\" type=\"required\">\n          {formsConfiguration.requiredFieldError}\n        </FormError>\n      </div>\n\n      <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n        <label htmlFor=\"directionField\" className={inputsStyles.label + \" \" + inputsStyles.labelRequired}>\n          {moduleConfiguration.directionFieldLabel}\n        </label>\n        <Input\n          id=\"directionField\"\n          type=\"text\"\n          name=\"direction\"\n          placeholder={moduleConfiguration.directionFieldPlaceholder}\n          required={true}\n          register={register}\n          hasErrors={!!errors[\"direction\"]}\n          onFocus={pushGtmFirstClickEvent}\n        />\n        <FormError errors={errors} name=\"direction\" type=\"required\">\n          {formsConfiguration.requiredFieldError}\n        </FormError>\n      </div>\n\n      <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n        <label htmlFor=\"stopField\" className={inputsStyles.label + \" \" + inputsStyles.labelRequired}>\n          {moduleConfiguration.stopFieldLabel}\n        </label>\n        <Input\n          id=\"stopField\"\n          type=\"text\"\n          name=\"stop\"\n          placeholder={moduleConfiguration.stopFieldPlaceholder}\n          required={true}\n          register={register}\n          hasErrors={!!errors[\"stop\"]}\n          onFocus={pushGtmFirstClickEvent}\n        />\n        <FormError errors={errors} name=\"stop\" type=\"required\">\n          {formsConfiguration.requiredFieldError}\n        </FormError>\n      </div>\n\n      <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n        <label htmlFor=\"messageField\" className={inputsStyles.label + \" \" + inputsStyles.labelRequired}>\n          {moduleConfiguration.messageFieldLabel}\n        </label>\n        <Textarea\n          id=\"messageField\"\n          name=\"message\"\n          placeholder={moduleConfiguration.messageFieldPlaceholder}\n          required={true}\n          register={register}\n          hasErrors={!!errors[\"message\"]}\n          onFocus={pushGtmFirstClickEvent}\n        />\n        <FormError errors={errors} name=\"message\" type=\"required\">\n          {formsConfiguration.requiredFieldError}\n        </FormError>\n      </div>\n\n      <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n        <label htmlFor=\"attachments\" className={inputsStyles.label}>\n          {moduleConfiguration.attachmentsFieldLabel}\n        </label>\n        <FileInput\n          key={\"attachments\"}\n          id={\"attachments\"}\n          type=\"file\"\n          name={\"attachments\"}\n          onChange={value => onChange(\"attachments\", value)}\n          className={\"\"}\n          register={register}\n          onFocus={pushGtmFirstClickEvent}\n        />\n        <FormError errors={errors} name=\"attachments\" type=\"required\">\n          {formsConfiguration.requiredFieldError}\n        </FormError>\n      </div>\n\n      <button\n        type=\"submit\"\n        className={inputsStyles.primaryButton + \" \" + styles.submitButton}\n        disabled={formState === FormState.Submitting || formState === FormState.Success}\n      >\n        {moduleConfiguration.submitButtonLabel}\n      </button>\n      {formState === FormState.Error && (\n        <div className={inputsStyles.formError + \" \" + styles.globalError}>{moduleConfiguration.errorMessage}</div>\n      )}\n      {formState === FormState.Success && (\n        <div className={styles.successMessage}>{moduleConfiguration.successMessage}</div>\n      )}\n    </form>\n  )\n}\n\nexport const fragments = graphql`\n  fragment LostObjectsFormConfigurationFields on DatoCmsLostObjectsFormConfiguration {\n    id\n    addressFieldLabel\n    addressFieldPlaceholder\n    attachmentsFieldLabel\n    cityFieldLabel\n    cityFieldPlaceholder\n    civilityFieldLabel\n    firstnameFieldPlaceholder\n    firstnameFieldLabel\n    errorMessage\n    emailFieldPlaceholder\n    emailFieldLabel\n    directionFieldLabel\n    directionFieldPlaceholder\n    dateFieldLabel\n    civilityOptions\n    zipCodeFieldPlaceholder\n    zipCodeFieldLabel\n    timeFieldLabel\n    successMessage\n    submitButtonLabel\n    stopFieldPlaceholder\n    stopFieldLabel\n    phoneFieldPlaceholder\n    phoneFieldLabel\n    nameFieldPlaceholder\n    nameFieldLabel\n    messageFieldPlaceholder\n    messageFieldLabel\n    lineFieldLabel\n    fromEmail\n    subsidiaryEmail\n    userEmailSubject\n    userEmailContent {\n      value\n      blocks\n      links {\n        id: originalId\n        fragmentType\n      }\n    }\n    subsidiaryEmailSubject\n    subsidiaryEmailContent {\n      value\n      blocks\n      links {\n        id: originalId\n        fragmentType\n      }\n    }\n  }\n\n  fragment LostObjectsFormLineFields on DatoCmsLine {\n    id\n    name\n  }\n`\n\nenum FormState {\n  Pending,\n  Submitting,\n  Success,\n  Error,\n}\n\nexport default LostObjectsForm\n","// extracted by mini-css-extract-plugin\nexport var allNetworkCheckbox = \"sms-alert-form-module--allNetworkCheckbox--91ae6\";\nexport var birthdateInput = \"sms-alert-form-module--birthdateInput--e2454\";\nexport var customForm = \"sms-alert-form-module--customForm--1f512\";\nexport var formCheckbox = \"sms-alert-form-module--formCheckbox--ccfb1\";\nexport var formPart = \"sms-alert-form-module--formPart--3218c\";\nexport var globalError = \"sms-alert-form-module--globalError--37560\";\nexport var hiddenInputLine = \"sms-alert-form-module--hiddenInputLine--5d9ff\";\nexport var loaderContainer = \"sms-alert-form-module--loaderContainer--798f3\";\nexport var loaderImage = \"sms-alert-form-module--loaderImage--653f8\";\nexport var select = \"sms-alert-form-module--select--9b389\";\nexport var submitButton = \"sms-alert-form-module--submitButton--b97de\";\nexport var successMessage = \"sms-alert-form-module--successMessage--c6dfe\";\nexport var textField = \"sms-alert-form-module--textField--81ab0\";\nexport var title = \"sms-alert-form-module--title--78c91\";","import * as config from \"../../config.js\"\n\nconst removeEmpty = obj => {\n  Object.keys(obj).forEach(key => (obj[key] == null || obj[key] == undefined || obj[key] === \"\") && delete obj[key])\n}\n\nexport function getSingleLineFromApi(lineReference) {\n  const token = config.api_token\n  const requestOptions = {\n    method: \"GET\",\n    headers: {\n      \"Content-Type\": \"application/json\",\n      \"X-API-KEY\": token,\n    },\n  }\n  //let sortingArr = [\"A\", \"03\", \"04\", \"05\", \"06\", \"07\", \"08\", \"09\", \"10\", \"11\", \"12\", \"13\", \"14\", \"15\", \"16\", \"17\", \"18\", \"21\", \"22\", \"23\", \"24\", \"25\", \"26\", \"M1\", \"M2\", \"M3\", \"03SP\", \"05SP\", \"08SP\", \"09SP\", \"10SP\", \"12SP\", \"15SP\", \"26SP\"];\n  return fetch(\n    config.api_url + config.api_url_get_lines_endpoint + \"?filters[reference]=\" + lineReference,\n    requestOptions\n  ).then(async response => {\n    const data = await response.json()\n    if (!response.ok) {\n      const error = (data && data.message) || response.statusText\n      return Promise.reject(error)\n    }\n    return data.data[0]\n  })\n}\n\nexport function getLinesFromApi() {\n  const token = config.api_token\n  const requestOptions = {\n    method: \"GET\",\n    headers: {\n      \"Content-Type\": \"application/json\",\n      \"X-API-KEY\": token,\n    },\n  }\n  return fetch(config.api_url + config.api_url_get_lines_endpoint, requestOptions).then(async response => {\n    const data = await response.json()\n    if (!response.ok) {\n      const error = (data && data.message) || response.statusText\n      return Promise.reject(error)\n    }\n    return data.data\n  })\n}\n\nexport function registerCustomerToSmsAlertRequest(formData) {\n  let bday = \"\"\n  if (formData[\"bday\"]) {\n    bday = formData[\"bday\"].toISOString().split(\"T\")[0]\n  }\n  let linesIdsArray = []\n  linesIdsArray.push(formData.line0 ? formData.line0.id : null)\n  linesIdsArray.push(formData.line1 ? formData.line1.id : null)\n  linesIdsArray.push(formData.line2 ? formData.line2.id : null)\n  linesIdsArray.push(formData.line3 ? formData.line3.id : null)\n  linesIdsArray.push(formData.line4 ? formData.line4.id : null)\n  const definedLinesIds = linesIdsArray.filter(v => v !== null)\n  const token = config.api_token\n  let requestBody = {\n    last_name: formData[\"family-name\"],\n    first_name: formData[\"given-name\"],\n    phone: formData.tel,\n    enabled: true,\n    email: formData.email,\n    birthday: bday,\n    address: formData.address,\n    zipcode: formData[\"postal-code\"],\n    city_name: formData.city,\n    lines: definedLinesIds,\n    network_subscriber: definedLinesIds.length === 0 || formData.allNetworkCheckbox,\n    offers_subscriber: !!formData.otherOffersCheckboxField,\n  }\n  removeEmpty(requestBody)\n  const requestOptions = {\n    method: \"POST\",\n    headers: {\n      \"Content-Type\": \"application/json\",\n      \"X-API-KEY\": token,\n    },\n    body: JSON.stringify(requestBody),\n  }\n  return fetch(config.api_url + config.api_url_user_registration_endpoint, requestOptions).then(async response => {\n    const data = await response.json()\n    if (!response.ok) {\n      const error = (data && data.messages) || response.statusText\n      return Promise.reject(error)\n    }\n    return data\n  })\n}\n","import React, { useState } from \"react\"\nimport {\n  SmsAlertInfoTrafficFormConfigurationFieldsFragment,\n  CustomFormsConfigurationFieldsFragment,\n  SmsAlertFormFieldsFragment,\n} from \"../../../graphql-types\"\nimport { graphql } from \"gatsby\"\nimport * as styles from \"./sms-alert-form.module.scss\"\nimport { useForm } from \"react-hook-form\"\nimport Input, { ValidationType } from \"../layout/form/input\"\nimport * as inputsStyles from \"../layout/inputs.module.scss\"\nimport FormError from \"../layout/form/form-error\"\nimport Autocomplete from \"../autocomplete/autocomplete\"\nimport DateInput from \"../layout/form/date-input\"\nimport Checkbox from \"../layout/form/checkbox\"\nimport { registerCustomerToSmsAlertRequest } from \"../../api/mobireport-alert-sms\"\nimport { pushGtmEvent } from \"../../gtm/interaction-event\"\n\ntype RenderProps = {\n  moduleConfiguration: SmsAlertInfoTrafficFormConfigurationFieldsFragment\n  formsConfiguration: CustomFormsConfigurationFieldsFragment\n  title: SmsAlertFormFieldsFragment[\"title\"]\n  lines: any\n  singleLineData: any\n  secondSingleLineData: any\n}\n\nconst SubscribeSmsAlertInfoTrafficForm: React.FC<RenderProps> = ({\n  lines,\n  title,\n  moduleConfiguration,\n  formsConfiguration,\n  singleLineData,\n  secondSingleLineData,\n}) => {\n  const [selectedLines, setSelectedLines] = useState([])\n  let sortingArr = [\n    \"A\",\n    \"3\",\n    \"4\",\n    \"5\",\n    \"6\",\n    \"7\",\n    \"8\",\n    \"9\",\n    \"10\",\n    \"11\",\n    \"12\",\n    \"13\",\n    \"14\",\n    \"15\",\n    \"16\",\n    \"17\",\n    \"18\",\n    \"21\",\n    \"22\",\n    \"23\",\n    \"24\",\n    \"25\",\n    \"26\",\n    \"M1\",\n    \"M2\",\n    \"M3\",\n    \"3sp\",\n    \"5sp\",\n    \"8sp\",\n    \"9sp\",\n    \"10sp\",\n    \"12sp\",\n    \"15sp\",\n    \"26sp\",\n    \"m3sp\",\n  ]\n\n  function sortLines() {\n    lines.push(singleLineData)\n    lines.push(secondSingleLineData)\n    let sortedLines = lines.filter(\n      e =>\n        sortingArr.includes(e.reference) ||\n        sortingArr.includes(e.reference?.replace(/^0+/, \"\")?.toLowerCase()) ||\n        sortingArr.includes(e.reference?.toLowerCase())\n    )\n    let ordered = sortingArr.map(element =>\n      sortedLines.find(x => x.reference?.replace(/^0+/, \"\")?.toLowerCase() == element || x.reference == element)\n    )\n    return ordered\n  }\n\n  const orderedLines = sortLines()\n\n  const [lineError, setLineError] = useState(false)\n  const [firstClick, setFirstClick] = useState(true)\n\n  const [formState, setFormState] = useState<FormState>(FormState.Pending)\n  const [allNetworkState, setNetworkSelected] = useState(false)\n  const [formValues, setFormValues] = useState<Map<string, string | boolean | FileList>>(new Map())\n  const {\n    control,\n    register,\n    handleSubmit,\n    formState: { errors },\n  } = useForm<FormData>()\n\n  let pickedLines = []\n  function searchLine(query: string) {\n    pickedLines.push(orderedLines.filter(result => result.reference.toLowerCase().indexOf(query.toLowerCase()) !== -1))\n    setSelectedLines(pickedLines)\n    setLineError(false)\n    return orderedLines.filter(result => result?.reference.toLowerCase().indexOf(query.toLowerCase()) !== -1)\n  }\n\n  function pushGtmFirstClickEvent() {\n    if (firstClick) {\n      pushGtmEvent(\"Form\", \"Form\", \"Form 1st click\", title)\n      setFirstClick(false)\n    }\n  }\n\n  function onSubmit(formData) {\n    if ((!selectedLines && allNetworkState === false) || (selectedLines.length === 0 && allNetworkState === false)) {\n      setLineError(true)\n      return\n    } else {\n      setLineError(false)\n    }\n    pushGtmEvent(\"eventga\", \"Form\", \"Form Submit\", title)\n    let requestReponse = registerCustomerToSmsAlertRequest(formData)\n    return Promise.all([requestReponse]).then(\n      () => setFormState(FormState.Success),\n      () => setFormState(FormState.Error)\n    )\n  }\n\n  let lineSelectionFields = []\n  for (var i = 0; i < 5; i++) {\n    lineSelectionFields.push(\n      <div className={styles.textField}>\n        <Autocomplete\n          id={\"lineField\"}\n          name={\"line\" + i.toString()}\n          toLabel={line => line.reference}\n          control={control}\n          suggestFunction={searchLine}\n        />\n        <div className={inputsStyles.formError}>{lineError ? formsConfiguration.requiredFieldError : \"\"}</div>\n      </div>\n    )\n  }\n\n  function onChange(fieldId, value) {\n    const newValues = new Map(formValues)\n    newValues.set(fieldId, value)\n    setFormValues(newValues)\n    if (fieldId == \"allNetworkCheckboxField\") {\n      setNetworkSelected(value)\n      if (allNetworkState == false && (!selectedLines || selectedLines.length === 0)) {\n        setLineError(false)\n      } else {\n        setLineError(true)\n      }\n    }\n  }\n\n  return (\n    <div>\n      <form onSubmit={handleSubmit(onSubmit)} className={styles.customForm} noValidate={true}>\n        <h2>{title}</h2>\n\n        <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n          <label htmlFor=\"family-name\" className={inputsStyles.label + \" \" + inputsStyles.labelRequired}>\n            {moduleConfiguration.nameFieldLabel}\n          </label>\n          <Input\n            id=\"family-name\"\n            type=\"text\"\n            name=\"family-name\"\n            autocomplete={true}\n            placeholder={moduleConfiguration.nameFieldPlaceholder}\n            required={true}\n            register={register}\n            hasErrors={!!errors[\"family-name\"]}\n            className={styles.textField}\n            onFocus={pushGtmFirstClickEvent}\n          />\n          <FormError errors={errors} name=\"family-name\" type=\"required\">\n            {formsConfiguration.requiredFieldError}\n          </FormError>\n        </div>\n\n        <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n          <label htmlFor=\"given-name\" className={inputsStyles.label + \" \" + inputsStyles.labelRequired}>\n            {moduleConfiguration.firstnameFieldLabel}\n          </label>\n          <Input\n            id=\"given-name\"\n            type=\"text\"\n            name=\"given-name\"\n            autocomplete={true}\n            placeholder={moduleConfiguration.firstnameFieldPlaceholder}\n            required={true}\n            register={register}\n            hasErrors={!!errors[\"given-name\"]}\n            className={styles.textField}\n            onFocus={pushGtmFirstClickEvent}\n          />\n          <FormError errors={errors} name=\"given-name\" type=\"required\">\n            {formsConfiguration.requiredFieldError}\n          </FormError>\n        </div>\n\n        <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n          <label htmlFor=\"bday\" className={inputsStyles.label}>\n            {moduleConfiguration.birthdateFieldLabel}\n          </label>\n          <DateInput\n            id=\"bday\"\n            name=\"bday\"\n            autocomplete={true}\n            required={false}\n            control={control}\n            maxDate={new Date()}\n            className={styles.birthdateInput}\n            minDate={null}\n            previousMonthAlt={moduleConfiguration.calendarPreviousMonthButtonAlt}\n            nextMonthAlt={moduleConfiguration.calendarNextMonthButtonAlt}\n            onFocus={pushGtmFirstClickEvent}\n          />\n        </div>\n\n        <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n          <label htmlFor=\"address\" className={inputsStyles.label}>\n            {moduleConfiguration.addressFieldLabel}\n          </label>\n          <Input\n            id=\"address\"\n            type=\"text\"\n            name=\"address\"\n            //autocomplete={true}\n            placeholder={moduleConfiguration.addressFieldPlaceholder}\n            register={register}\n            className={styles.textField}\n            onFocus={pushGtmFirstClickEvent}\n          />\n        </div>\n\n        <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n          <label htmlFor=\"city\" className={inputsStyles.label}>\n            {moduleConfiguration.cityFieldLabel}\n          </label>\n          <Input\n            id=\"city\"\n            type=\"text\"\n            name=\"city\"\n            placeholder={moduleConfiguration.cityFieldPlaceholder}\n            register={register}\n            className={styles.textField}\n            onFocus={pushGtmFirstClickEvent}\n          />\n        </div>\n\n        <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n          <label htmlFor=\"postal-code\" className={inputsStyles.label}>\n            {moduleConfiguration.zipCodeFieldLabel}\n          </label>\n          <Input\n            id=\"postal-code\"\n            type=\"text\"\n            name=\"postal-code\"\n            autocomplete={true}\n            placeholder={moduleConfiguration.zipCodeFieldPlaceholder}\n            register={register}\n            className={styles.textField}\n            onFocus={pushGtmFirstClickEvent}\n          />\n        </div>\n\n        <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n          <label htmlFor=\"tel\" className={inputsStyles.label + \" \" + inputsStyles.labelRequired}>\n            {moduleConfiguration.phoneFieldLabel}\n          </label>\n          <Input\n            id=\"tel\"\n            type=\"text\"\n            name=\"tel\"\n            autocomplete={true}\n            placeholder={moduleConfiguration.phoneFieldPlaceholder}\n            required={true}\n            register={register}\n            hasErrors={!!errors[\"tel\"]}\n            className={styles.textField}\n            validationType={ValidationType.PhoneNumberE164}\n            onFocus={pushGtmFirstClickEvent}\n          />\n          <FormError errors={errors} name=\"tel\" type=\"pattern\">\n            {moduleConfiguration.invalidPhoneErrorMessage}\n          </FormError>\n          <FormError errors={errors} name=\"tel\" type=\"required\">\n            {formsConfiguration.requiredFieldError}\n          </FormError>\n        </div>\n\n        <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n          <label htmlFor=\"email\" className={inputsStyles.label}>\n            {moduleConfiguration.emailFieldLabel}\n          </label>\n          <Input\n            id=\"email\"\n            type=\"text\"\n            name=\"email\"\n            autocomplete={true}\n            placeholder={moduleConfiguration.emailFieldPlaceholder}\n            register={register}\n            validationType={ValidationType.Email}\n            hasErrors={!!errors[\"email\"]}\n            className={styles.textField}\n            onFocus={pushGtmFirstClickEvent}\n          />\n          <FormError errors={errors} name=\"email\" type=\"pattern\">\n            {formsConfiguration.emailFieldError}\n          </FormError>\n        </div>\n\n        <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n          <label\n            htmlFor=\"lineField\"\n            className={\n              selectedLines.length === 0 ? inputsStyles.label + \" \" + inputsStyles.labelRequired : inputsStyles.label\n            }\n          >\n            {moduleConfiguration.lineFieldLabel}\n          </label>\n          <div>{lineSelectionFields}</div>\n        </div>\n\n        <div className={inputsStyles.formPart + \" \" + styles.formPart + \" \" + styles.allNetworkCheckbox}>\n          <Checkbox\n            id={\"allNetworkCheckboxField\"}\n            label={moduleConfiguration.allNetworkCheckboxFieldLabel}\n            name={\"allNetworkCheckbox\"}\n            /*             checked={!!formValues.get(\"allNetworkCheckboxField\")}\n            onChange={value => onChange(\"allNetworkCheckboxField\", value)} */\n            className={inputsStyles.label}\n            register={register}\n            onFocus={pushGtmFirstClickEvent}\n          />\n        </div>\n\n        <div className={inputsStyles.formPart + \" \" + styles.formPart + \" \" + styles.formCheckbox}>\n          <Checkbox\n            id={\"userAgreementCheckboxField\"}\n            label={moduleConfiguration.userAgreementCheckboxFieldLabel}\n            name={\"userAgreementCheckboxField\"}\n            required={true}\n            /*             checked={!!formValues.get(\"userAgreementCheckboxField\")}\n            onChange={value => onChange(\"userAgreementCheckboxField\", value)} */\n            hasErrors={!!errors[\"userAgreementCheckboxField\"]}\n            register={register}\n            className={inputsStyles.label}\n            onFocus={pushGtmFirstClickEvent}\n          />\n          <a\n            href={\n              moduleConfiguration.userAgreementLink[0].page\n                ? moduleConfiguration.userAgreementLink[0].page.slug\n                : moduleConfiguration.userAgreementLink[0].document\n                  ? moduleConfiguration.userAgreementLink[0].document.url\n                  : \"\"\n            }\n          >\n            {moduleConfiguration.userAgreementLink[0].label}\n          </a>\n\n          <FormError errors={errors} name={\"userAgreementCheckboxField\"} type=\"required\">\n            {formsConfiguration.requiredFieldError}\n          </FormError>\n        </div>\n\n        <div className={inputsStyles.formPart + \" \" + styles.formPart + \" \" + styles.formCheckbox}>\n          <Checkbox\n            id={\"otherOffersCheckboxField\"}\n            label={moduleConfiguration.otherOffersCheckboxFieldLabel}\n            name={\"otherOffersCheckboxField\"}\n            /*             checked={!!formValues.get(\"otherOffersCheckboxField\")}\n            onChange={value => onChange(\"otherOffersCheckboxField\", value)} */\n            register={register}\n            className={inputsStyles.label}\n            onFocus={pushGtmFirstClickEvent}\n          />\n        </div>\n\n        <button\n          type=\"submit\"\n          className={inputsStyles.primaryButton + \" \" + styles.submitButton}\n          disabled={formState === FormState.Submitting || formState === FormState.Success}\n        >\n          {moduleConfiguration.submitButtonLabel}\n        </button>\n        {formState === FormState.Error && (\n          <div className={inputsStyles.formError + \" \" + styles.globalError} aria-live=\"assertive\" role=\"alert\">\n            {moduleConfiguration.errorMessage}\n          </div>\n        )}\n        {formState === FormState.Success && (\n          <div className={styles.successMessage} aria-live=\"polite\">\n            {moduleConfiguration.successMessage}\n          </div>\n        )}\n      </form>\n    </div>\n  )\n}\n\nexport const fragments = graphql`\n  fragment SmsAlertInfoTrafficFormConfigurationFields on DatoCmsSmsAlertInfoTrafficFormConfiguration {\n    id\n    nameFieldPlaceholder\n    nameFieldLabel\n    firstnameFieldPlaceholder\n    firstnameFieldLabel\n    birthdateFieldLabel\n    birthdateFieldPlaceholder\n    addressFieldLabel\n    addressFieldPlaceholder\n    cityFieldLabel\n    cityFieldPlaceholder\n    errorMessage\n    emailFieldPlaceholder\n    emailFieldLabel\n    zipCodeFieldPlaceholder\n    zipCodeFieldLabel\n    successMessage\n    submitButtonLabel\n    phoneFieldPlaceholder\n    phoneFieldLabel\n    invalidPhoneErrorMessage\n    lineFieldLabel\n    allNetworkCheckboxFieldLabel\n    otherOffersCheckboxFieldLabel\n    userAgreementCheckboxFieldLabel\n    userAgreementLink {\n      label\n      page {\n        slug\n      }\n      document {\n        url\n      }\n    }\n    loadingErrorMessage\n    calendarPreviousMonthButtonAlt\n    calendarNextMonthButtonAlt\n  }\n\n  fragment SmsAlertFormFields on DatoCmsSmsAlertForm {\n    __typename\n    id\n    title\n  }\n\n  fragment CustomFormsConfigurationFields on DatoCmsFormsConfiguration {\n    requiredFieldError\n    phoneNumberFieldError\n    emailFieldError\n    logoSubsidiary {\n      alt\n      url\n    }\n  }\n`\n\nenum FormState {\n  Pending,\n  Submitting,\n  Success,\n  Error,\n}\n\nexport default SubscribeSmsAlertInfoTrafficForm\n","import React, { useEffect, useState } from \"react\"\nimport {\n  SmsAlertInfoTrafficFormConfigurationFieldsFragment,\n  CustomFormsConfigurationFieldsFragment,\n  SmsAlertFormFieldsFragment,\n} from \"../../../graphql-types\"\nimport { graphql } from \"gatsby\"\nimport SubscribeSmsAlertInfoTrafficForm from \"./subscribe-sms-alert-form\"\nimport { getLinesFromApi, getSingleLineFromApi } from \"../../api/mobireport-alert-sms\"\nimport * as styles from \"./sms-alert-form.module.scss\"\nimport * as config from \"../../../config.js\"\n\ntype RenderProps = {\n  moduleConfiguration: SmsAlertInfoTrafficFormConfigurationFieldsFragment\n  formsConfiguration: CustomFormsConfigurationFieldsFragment\n  title: SmsAlertFormFieldsFragment[\"title\"]\n}\n\nconst SmsAlertInfoTrafficForms: React.FC<RenderProps> = ({ title, moduleConfiguration, formsConfiguration }) => {\n  const [linesData, setLinesData] = useState([])\n  const [singleLineData, setSingleLineData] = useState([])\n  const [secondSingleLineData, setSecondSingleLineData] = useState([])\n\n  const [showLoader, setShowLoader] = useState(true)\n  useEffect(() => {\n    const singleLineResponse = getSingleLineFromApi(\"26SP\").then(items => {\n      Promise.all([singleLineResponse]).then(\n        () => setSingleLineData(items),\n        () => setSingleLineData([])\n      )\n    })\n    const secondSingleLineResponse = getSingleLineFromApi(\"M3SP\").then(items => {\n      Promise.all([secondSingleLineResponse]).then(\n        () => setSecondSingleLineData(items),\n        () => setSecondSingleLineData([])\n      )\n    })\n    const requestResponse = getLinesFromApi().then(items => {\n      Promise.all([requestResponse]).then(\n        () => setLinesData(items),\n        () => setLinesData([])\n      )\n    })\n    setShowLoader(false)\n  }, [])\n\n  function componentToDisplay() {\n    if (linesData.length != 0) {\n      return (\n        <SubscribeSmsAlertInfoTrafficForm\n          lines={linesData}\n          title={title}\n          moduleConfiguration={moduleConfiguration}\n          formsConfiguration={formsConfiguration}\n          singleLineData={singleLineData}\n          secondSingleLineData={secondSingleLineData}\n        />\n      )\n    } else if (showLoader) {\n      return (\n        <div className={styles.loaderContainer}>\n          <img className={styles.loaderImage} src={config.loader.url} alt={config.loader.alt}></img>\n        </div>\n      )\n    } else {\n      return <p>{moduleConfiguration.loadingErrorMessage}</p>\n    }\n  }\n\n  return <div>{componentToDisplay()}</div>\n}\n\nexport const fragments = graphql`\n  fragment SmsAlertInfoTrafficFormConfigurationFields on DatoCmsSmsAlertInfoTrafficFormConfiguration {\n    id\n    nameFieldPlaceholder\n    nameFieldLabel\n    firstnameFieldPlaceholder\n    firstnameFieldLabel\n    birthdateFieldLabel\n    birthdateFieldPlaceholder\n    addressFieldLabel\n    addressFieldPlaceholder\n    cityFieldLabel\n    cityFieldPlaceholder\n    errorMessage\n    emailFieldPlaceholder\n    emailFieldLabel\n    zipCodeFieldPlaceholder\n    zipCodeFieldLabel\n    successMessage\n    submitButtonLabel\n    phoneFieldPlaceholder\n    phoneFieldLabel\n    invalidPhoneErrorMessage\n    lineFieldLabel\n    allNetworkCheckboxFieldLabel\n    otherOffersCheckboxFieldLabel\n    userAgreementCheckboxFieldLabel\n    userAgreementLink {\n      label\n      page {\n        slug\n      }\n      document {\n        url\n      }\n    }\n    loadingErrorMessage\n    calendarPreviousMonthButtonAlt\n    calendarNextMonthButtonAlt\n  }\n\n  fragment SmsAlertFormFields on DatoCmsSmsAlertForm {\n    __typename\n    id\n    title\n  }\n\n  fragment CustomFormsConfigurationFields on DatoCmsFormsConfiguration {\n    requiredFieldError\n    phoneNumberFieldError\n    emailFieldError\n    logoSubsidiary {\n      alt\n      url\n    }\n  }\n`\n\nexport default SmsAlertInfoTrafficForms\n","import React, { useState, useEffect } from \"react\"\nimport * as styles from \"./info-traffic-le-pilote.module.scss\"\nimport { graphql } from \"gatsby\"\nimport { LePiloteInfoTrafficLinesIconsFieldsFragment } from \"../../../graphql-types\"\nimport sanitizeHtml from \"sanitize-html\"\nimport { getInfoTraffic, getLines } from \"../../api/le-pilote/le-pilote-info-traffic-api\"\nimport config from \"../../../config\"\n\ntype RenderProps = {\n  linesIconsData: LePiloteInfoTrafficLinesIconsFieldsFragment[]\n}\n\nconst InfoTrafficLePilote: React.FC<RenderProps> = ({ linesIconsData }) => {\n  const [linesWithInfoTraffic, setLinesWithInfoTraffic] = useState([])\n\n  useEffect(() => {\n    getExternalData(config.locale)\n  }, [])\n\n  async function getExternalData(lang) {\n    const lines = await getLines(lang)\n    const traffic = await getInfoTraffic(lang)\n    const formattedData = parseTrafficData(lines.Data, traffic.Data)\n    setLinesWithInfoTraffic(formattedData)\n  }\n\n  function getAllAffectedLines(infoTrafficData) {\n    const lines = []\n    infoTrafficData.map(infoTraffic => {\n      infoTraffic.DisruptedLines.map(line => {\n        lines.push(line)\n      })\n    })\n    return lines\n  }\n\n  function getInfoTrafficFormatted(disruptedLines, infoTrafficData, linesDetails) {\n    const myLinesWithTraffic = []\n    disruptedLines.map(line => {\n      const infoTrafficArray = []\n      infoTrafficData.map(infoTraffic => {\n        infoTraffic.DisruptedLines.map(subline => {\n          if (line.LineId == subline.LineId) {\n            const completeLineData = linesDetails.find(x => x.Id == line.LineId)\n            if (completeLineData) {\n              const icone = getLineIcon(completeLineData.Code)\n              completeLineData.icone = icone[0]\n              infoTrafficArray.push(infoTraffic)\n              myLinesWithTraffic.push({\n                line: completeLineData,\n                traffic: infoTrafficArray,\n              })\n            }\n          }\n        })\n      })\n    })\n    return myLinesWithTraffic\n  }\n\n  function removeDuplicateLinesFromArray(infoTrafficFormatted) {\n    return infoTrafficFormatted.filter(\n      (ele, index) => index === infoTrafficFormatted.findIndex(elem => elem.line === ele.line)\n    )\n  }\n\n  function removeDuplicateTrafficInfoFromArray(formattedTrafficWithUniqueLines) {\n    return formattedTrafficWithUniqueLines.map(item => {\n      return {\n        line: item.line,\n        traffic: item.traffic.filter(\n          (element, index) => index === item.traffic.findIndex(elem => elem.Id === element.Id)\n        ),\n      }\n    })\n  }\n\n  function parseTrafficData(linesDetails: Array<any>, infoTrafficData: Array<any>): Array<object> {\n    const disruptedLines = getAllAffectedLines(infoTrafficData)\n    const trafficWithLines = getInfoTrafficFormatted(disruptedLines, infoTrafficData, linesDetails)\n    const formattedTrafficWithUniqueLines = removeDuplicateLinesFromArray(trafficWithLines)\n    return removeDuplicateTrafficInfoFromArray(formattedTrafficWithUniqueLines)\n  }\n\n  function getLineIcon(lineCode) {\n    const lineCodeLowercase = lineCode.toLowerCase()\n    return linesIconsData.filter(x => x.basename.endsWith(`${lineCodeLowercase}`))\n  }\n\n  return (\n    <div className={styles.container}>\n      <h3 className={styles.title}>{config.locale.info_traffic_content_title}</h3>\n      {linesWithInfoTraffic.map(disruption => {\n        return (\n          <div className={styles.line} key={disruption.line.Id}>\n            <div className={styles.pictoBoxTop}>\n              {disruption.line.icone ? (\n                <img src={disruption.line.icone.url} alt={disruption.line.Code} />\n              ) : (\n                disruption.line.Code\n              )}\n            </div>\n            <ul className={styles.lineDivider}>\n              {disruption.traffic.map(traffic => {\n                return (\n                  <li className={styles.trafficContainer} key={traffic.Id}>\n                    <div className={styles.descriptionContainer}>\n                      {traffic.Description ? (\n                        <div\n                          dangerouslySetInnerHTML={{\n                            __html: sanitizeHtml(traffic.Description),\n                          }}\n                        />\n                      ) : (\n                        <h4>{traffic.Name}</h4>\n                      )}\n                    </div>\n                  </li>\n                )\n              })}\n            </ul>\n          </div>\n        )\n      })}\n    </div>\n  )\n}\n\nexport default InfoTrafficLePilote\nexport const fragments = graphql`\n  fragment LePiloteInfoTrafficLinesIconsFields on DatoCmsAsset {\n    id\n    url\n    basename\n  }\n`\n","// extracted by mini-css-extract-plugin\nexport var container = \"info-traffic-le-pilote-module--container--bd619\";\nexport var descriptionContainer = \"info-traffic-le-pilote-module--descriptionContainer--271c0\";\nexport var line = \"info-traffic-le-pilote-module--line--d25ff\";\nexport var lineDivider = \"info-traffic-le-pilote-module--lineDivider--c32c6\";\nexport var pictoBoxTop = \"info-traffic-le-pilote-module--pictoBoxTop--a966e\";\nexport var title = \"info-traffic-le-pilote-module--title--020b0\";\nexport var trafficContainer = \"info-traffic-le-pilote-module--trafficContainer--ebaf1\";","// extracted by mini-css-extract-plugin\nexport var image = \"title-page-module--image--a6cef\";\nexport var svgImage = \"title-page-module--svgImage--cb075\";\nexport var ticketBlockText = \"title-page-module--ticketBlockText--00267\";\nexport var titleBlockItem = \"title-page-module--titleBlockItem--a0019\";\nexport var titleImage = \"title-page-module--titleImage--08734\";\nexport var titleRow = \"title-page-module--titleRow--6f84e\";\nexport var titleText = \"title-page-module--titleText--fa7ef\";","import React from \"react\"\nimport * as styles from \"./title-page.module.scss\"\nimport { TitleBlockFieldsFragment } from \"../../../graphql-types\"\nimport { ReactSVG } from \"react-svg\"\n\ntype RenderProps = {\n  titleData: TitleBlockFieldsFragment\n}\n\nconst TitlePage: React.FC<RenderProps> = ({ titleData }) => {\n  function getTextOrImageClass(titleBlock) {\n    if (!titleBlock.textOrImage) {\n      if (titleBlock.linkText) {\n        return styles.titleBlockItem + \" \" + styles.titleText\n      }\n    } else if (titleBlock.textOrImage && titleBlock.linkImage) {\n      return styles.titleBlockItem + \" \" + styles.titleImage\n    }\n    return styles.titleBlockItem + \" \" + styles.titleText\n  }\n\n  function getTextOrImageLayout(titleBlock) {\n    if ((!titleBlock.linkText && !titleBlock.linkImage) || (!titleBlock.textOrImage && !titleBlock.linkText)) {\n      return <div className={styles.ticketBlockText}>{titleBlock.title}</div>\n    }\n    if (!titleBlock.textOrImage && titleBlock.linkText) {\n      return <div className={styles.ticketBlockText}>{titleBlock.linkText}</div>\n    }\n    if (titleBlock.textOrImage && titleBlock.linkImage) {\n      return (\n        <div>\n          {titleBlock.linkImage.format === \"svg\" ? (\n            <ReactSVG\n              src={titleBlock.linkImage.url}\n              className={styles.svgImage}\n              beforeInjection={svg => svg.setAttribute(\"aria-label\", titleBlock.linkImage.alt || \"\")}\n            />\n          ) : (\n            <img src={titleBlock.linkImage.url} alt={titleBlock.linkImage.alt || \"\"} className={styles.image} />\n          )}\n        </div>\n      )\n    }\n  }\n\n  return (\n    <div className={styles.titleRow}>\n      {titleData.titleBlockLink.map(titleBlock => {\n        return (\n          <a\n            href={\n              !titleBlock.externalLink && !titleBlock.internalLink\n                ? \"#\"\n                : titleBlock.externalLink\n                  ? titleBlock.externalLink\n                  : titleBlock.internalLink && titleBlock.internalLink.__typename == \"DatoCmsPage\"\n                    ? \"/\" + titleBlock.internalLink.slug\n                    : \"/\"\n            }\n            className={getTextOrImageClass(titleBlock)}\n            key={titleBlock.id}\n          >\n            {getTextOrImageLayout(titleBlock)}\n          </a>\n        )\n      })}\n    </div>\n  )\n}\n\nexport default TitlePage\n","// extracted by mini-css-extract-plugin\nexport var errorMessage = \"le-pilote-next-trips-search-module--errorMessage--704b6\";\nexport var field = \"le-pilote-next-trips-search-module--field--774d8\";\nexport var form = \"le-pilote-next-trips-search-module--form--eddc3\";\nexport var formPart = \"le-pilote-next-trips-search-module--formPart--67020\";\nexport var moduleContainer = \"le-pilote-next-trips-search-module--moduleContainer--5b826\";\nexport var nextTripEta = \"le-pilote-next-trips-search-module--nextTripEta--cd4fb\";\nexport var nextTripLineIcon = \"le-pilote-next-trips-search-module--nextTripLineIcon--09b8f\";\nexport var nextTripLineIconText = \"le-pilote-next-trips-search-module--nextTripLineIconText--e4229\";\nexport var nextTripLineName = \"le-pilote-next-trips-search-module--nextTripLineName--24968\";\nexport var nextTripResult = \"le-pilote-next-trips-search-module--nextTripResult--e04dc\";\nexport var nextTripsResultsContainer = \"le-pilote-next-trips-search-module--nextTripsResultsContainer--a913a\";\nexport var searchButton = \"le-pilote-next-trips-search-module--searchButton--0d5d4\";\nexport var title = \"le-pilote-next-trips-search-module--title--96d3a\";\nexport var titleModule = \"le-pilote-next-trips-search-module--titleModule--5dc8a\";","import React, { useEffect, useRef, useState } from \"react\"\nimport {\n  LePiloteInfoTrafficLinesIconsFieldsFragment,\n  LePiloteNextTripsSearchModuleFieldsFragment,\n} from \"../../../graphql-types\"\nimport * as styles from \"./le-pilote-next-trips-search.module.scss\"\nimport * as blockStyles from \"../home/custom-block/custom-block.module.scss\"\nimport * as inputsStyles from \"../layout/inputs.module.scss\"\nimport { graphql } from \"gatsby\"\nimport Autocomplete from \"../autocomplete/autocomplete\"\nimport { getNextTrips, getStopsFromApi } from \"../../api/le-pilote-api\"\n\ntype RenderProps = {\n  moduleData: LePiloteNextTripsSearchModuleFieldsFragment\n  linesIconsData?: LePiloteInfoTrafficLinesIconsFieldsFragment[]\n}\n\nconst LePiloteNextTripsSearch: React.FC<RenderProps> = ({ moduleData, linesIconsData }) => {\n  const component = useRef<HTMLFormElement>()\n\n  const [stops, setStops] = useState([])\n  const [realStops, setRealStops] = useState(null)\n  const [nextTrips, setNextTrips] = useState(null)\n  const [noResults, setNoResults] = useState(false)\n\n  useEffect(() => {\n    if (window.location.search) {\n      const query = extractQueryFromUrl(window.location.search)\n      if (query) {\n        searchNextTrips(query[0])\n      }\n    }\n  }, [])\n\n  function extractQueryFromUrl(param) {\n    const fullQuery = param.split(\"=\")\n    if (fullQuery[1] && fullQuery[1] != \"\") {\n      const query = fullQuery[1].split(\"%23\")\n      query[1] = query[1].replaceAll(\"+\", \" \")\n      return query\n    }\n    return null\n  }\n\n  function formatStopsResults(stopsResults) {\n    if (stopsResults) {\n      const uniqueStops = stopsResults.filter(\n        (ele, index) => index === stopsResults.findIndex(elem => elem.LogicalId === ele.LogicalId)\n      )\n      return uniqueStops\n    } else {\n      return []\n    }\n  }\n\n  function getLineIcon(lineCode) {\n    const lineCodeLowercase = lineCode.toLowerCase()\n    return linesIconsData.filter(x => x.basename.endsWith(`${lineCodeLowercase}`))\n  }\n\n  function formatNextTripArrivalTimeAndLine(nextTrip, hour) {\n    let arrivalTime = hour.TheoricArrivalTime\n    let lineId = hour.LineId\n    if (hour.PredictedArrivalTime) {\n      arrivalTime = hour.PredictedArrivalTime\n    }\n    if (hour.aimedArrivalTime) {\n      arrivalTime = hour.AimedArrivalTime\n    }\n    if (hour.realArrivalTime) {\n      arrivalTime = hour.RealArrivalTime\n    }\n    let date = new Date()\n    let minutes = date.getHours() * 60 + date.getMinutes()\n    let time\n    let timeInMinutes\n    let matchingLines = nextTrip.Lines.filter(line => line.Id == lineId)\n    if (arrivalTime - minutes <= 0) {\n      time = moduleData.arrivingMessage\n      timeInMinutes = 0\n    } else {\n      if (arrivalTime - minutes >= 60) {\n        let roundHour = Math.floor((arrivalTime - minutes) / 60)\n        let remainder = (arrivalTime - minutes) % 60\n        time = roundHour + (roundHour == 1 ? \" h \" : \" hrs \") + remainder + \" min.\"\n      } else {\n        time = arrivalTime - minutes + \" min.\"\n      }\n      timeInMinutes = arrivalTime - minutes\n    }\n    hour.computedNextArrivals = { time, timeInMinutes }\n    hour.computedLines = matchingLines\n    const destination = nextTrip.VehicleJourneys.find(journey => journey.Id === hour.VehicleJourneyId)\n    hour.computedDestination = destination.JourneyDestination\n    if (hour.computedLines && hour.computedLines[0]) {\n      hour.computedLineIcon = getLineIcon(hour.computedLines[0].Code)\n    }\n  }\n\n  function searchNextTrips(query) {\n    setNoResults(false)\n    getNextTrips(query).then(nextTripsData => {\n      if (!nextTripsData) {\n        setNextTrips(null)\n        setNoResults(true)\n        return null\n      }\n      nextTripsData.Hours.map(hour => {\n        formatNextTripArrivalTimeAndLine(nextTripsData, hour)\n      })\n      nextTripsData.Hours.sort(function (a, b) {\n        return a.computedNextArrivals.timeInMinutes - b.computedNextArrivals.timeInMinutes\n      })\n      setNextTrips(nextTripsData)\n    })\n    return nextTrips\n  }\n\n  function searchAllTypeTripPoints(query) {\n    if (query && query != \"\") {\n      let cleanQuery = query.trim()\n      let tmpStops\n      ;(async () => {\n        tmpStops = await getStopsFromApi(cleanQuery)\n        setStops(tmpStops)\n      })()\n      const completeResults = formatStopsResults(stops)\n      setRealStops(completeResults)\n      return search(cleanQuery, completeResults, toLabel)\n    }\n    return []\n  }\n\n  const handleClickEvent = () => {\n    const form = component.current\n    const searchValue = form[\"search\"].value.split(\"#\")\n    const tripPoint = searchAllTypeTripPoints(searchValue[1])\n    if (tripPoint && tripPoint[0]) {\n      searchNextTrips(tripPoint[0].LogicalId ? tripPoint[0].LogicalId : tripPoint[0].Id)\n    }\n    window.history.replaceState({}, document.title, window.location.href.split(\"?\")[0])\n  }\n\n  return (\n    <div className={styles.moduleContainer}>\n      <form className={blockStyles.block} method=\"get\" ref={component}>\n        <div className={blockStyles.title + \" \" + styles.titleModule}>{moduleData.title}</div>\n        <div className={styles.form}>\n          <div className={styles.formPart}>\n            <div className={styles.field}>\n              <label htmlFor=\"trippoint\">{moduleData.trippointFieldLabel}</label>\n              <Autocomplete\n                onChange={setRealStops}\n                suggestFunction={searchAllTypeTripPoints}\n                toLabel={toLabel}\n                id=\"trippoint\"\n                placeholder={\n                  (realStops && realStops.Name) ||\n                  (nextTrips && nextTrips.Stops[0].Name) ||\n                  moduleData.trippointFieldPlaceholder\n                }\n              />\n              <input\n                type=\"hidden\"\n                name=\"search\"\n                value={\n                  (realStops && realStops.LogicalId + \"#\" + realStops.Name) ||\n                  (realStops && realStops.Id + \"#\" + realStops.Name)\n                }\n              />\n            </div>\n          </div>\n        </div>\n        <button\n          className={styles.searchButton + \" \" + inputsStyles.primaryButton}\n          type=\"button\"\n          onClick={handleClickEvent}\n        >\n          {moduleData.searchButtonLabel}\n        </button>\n      </form>\n\n      <div className={styles.nextTripsResultsContainer}>\n        {nextTrips ? (\n          nextTrips.Hours.map(x => {\n            {\n              return x.computedLines.map(line => {\n                return (\n                  <div className={styles.nextTripResult} key={line.Id}>\n                    {x.computedLineIcon[0] ? (\n                      <img src={x.computedLineIcon[0].url} className={styles.nextTripLineIcon}></img>\n                    ) : (\n                      <div className={styles.nextTripLineIcon + \" \" + styles.nextTripLineIconText}>{line.Code}</div>\n                    )}\n                    <div className={styles.nextTripLineName}>\n                      {x.computedDestination ? x.computedDestination : line.Name}\n                    </div>\n                    <div className={styles.nextTripEta}>{x.computedNextArrivals.time}</div>\n                  </div>\n                )\n              })\n            }\n          })\n        ) : (\n          <div className={styles.errorMessage}>{noResults && !nextTrips ? <p>{moduleData.errorMessage}</p> : null}</div>\n        )}\n      </div>\n    </div>\n  )\n}\n\nfunction search<T>(query: string, elements: T[], toLabelFn: (element: T) => string): T[] {\n  if (elements) {\n    return elements.filter(result => toLabelFn(result).toLowerCase().indexOf(query.toLowerCase()) !== -1)\n  }\n}\n\nfunction toLabel(element?: any) {\n  return element ? element.Name : \"\"\n}\n\nexport const fragments = graphql`\n  fragment LePiloteNextTripsSearchModuleFields on DatoCmsLePiloteNextTripsSearchModule {\n    __typename\n    id\n    title\n    trippointFieldLabel\n    trippointFieldPlaceholder\n    searchButtonLabel\n    errorMessage\n    arrivingMessage\n  }\n\n  fragment LePiloteInfoTrafficLinesIconsFields on DatoCmsAsset {\n    id\n    url\n    basename\n  }\n`\nexport default LePiloteNextTripsSearch\n","// extracted by mini-css-extract-plugin\nexport var accordion = \"le-pilote-itinerary-module--accordion--09d6c\";\nexport var arrivalMarker = \"le-pilote-itinerary-module--arrivalMarker--ccd69\";\nexport var button = \"le-pilote-itinerary-module--button--b4d22\";\nexport var calendarContent = \"le-pilote-itinerary-module--calendarContent--47569\";\nexport var coordinates = \"le-pilote-itinerary-module--coordinates--cc5c4\";\nexport var duration = \"le-pilote-itinerary-module--duration--dc4bd\";\nexport var errorMessage = \"le-pilote-itinerary-module--errorMessage--9def5\";\nexport var expandArrow = \"le-pilote-itinerary-module--expandArrow--9a2c7\";\nexport var formContainer = \"le-pilote-itinerary-module--formContainer--03071\";\nexport var inputIcon = \"le-pilote-itinerary-module--inputIcon--a51f2\";\nexport var inputWithIcons = \"le-pilote-itinerary-module--inputWithIcons--0e5c1\";\nexport var itineraryCard = \"le-pilote-itinerary-module--itineraryCard--a46fa\";\nexport var itineraryCardDetailsClosed = \"le-pilote-itinerary-module--itineraryCardDetailsClosed--bcf3e\";\nexport var itineraryCardDisplay = \"le-pilote-itinerary-module--itineraryCardDisplay--ba1d5\";\nexport var itineraryCardHeader = \"le-pilote-itinerary-module--itineraryCardHeader--eb0ed\";\nexport var itineraryCardWrapper = \"le-pilote-itinerary-module--itineraryCardWrapper--11123\";\nexport var itineraryContainer = \"le-pilote-itinerary-module--itineraryContainer--d74da\";\nexport var itinerarySearchForm = \"le-pilote-itinerary-module--itinerarySearchForm--fcb90\";\nexport var labelError = \"le-pilote-itinerary-module--labelError--49f95\";\nexport var lineIcon = \"le-pilote-itinerary-module--lineIcon--d9037\";\nexport var lineIconWrapper = \"le-pilote-itinerary-module--lineIconWrapper--84e82\";\nexport var lineIconWrapperDetailsClosed = \"le-pilote-itinerary-module--lineIconWrapperDetailsClosed--acdb5\";\nexport var lineText = \"le-pilote-itinerary-module--lineText--43187\";\nexport var map = \"le-pilote-itinerary-module--map--3c5db\";\nexport var mapboxglMap = \"le-pilote-itinerary-module--mapboxgl-map--059fb\";\nexport var noTripErrorMessage = \"le-pilote-itinerary-module--noTripErrorMessage--bf1be\";\nexport var nudge = \"le-pilote-itinerary-module--nudge--a72ca\";\nexport var panel = \"le-pilote-itinerary-module--panel--7dd9c\";\nexport var panelContent = \"le-pilote-itinerary-module--panelContent--14453\";\nexport var permutation = \"le-pilote-itinerary-module--permutation--dda16\";\nexport var rotatedImage = \"le-pilote-itinerary-module--rotatedImage--f992e\";\nexport var round = \"le-pilote-itinerary-module--round--c37fe\";\nexport var sectionDirection = \"le-pilote-itinerary-module--sectionDirection--3800f\";\nexport var sectionDuration = \"le-pilote-itinerary-module--sectionDuration--891ab\";\nexport var sectionName = \"le-pilote-itinerary-module--sectionName--bd7bc\";\nexport var selectedField = \"le-pilote-itinerary-module--selectedField--f934e\";\nexport var separator = \"le-pilote-itinerary-module--separator--2ccb6\";\nexport var slider = \"le-pilote-itinerary-module--slider--20f81\";\nexport var subtitle = \"le-pilote-itinerary-module--subtitle--cd515\";\nexport var switchButt = \"le-pilote-itinerary-module--switchButt--582a2\";\nexport var switchButton = \"le-pilote-itinerary-module--switchButton--1d358\";\nexport var textLine = \"le-pilote-itinerary-module--textLine--fd2a2\";\nexport var time = \"le-pilote-itinerary-module--time--caf8e\";\nexport var timeAlign = \"le-pilote-itinerary-module--timeAlign--611a8\";\nexport var timeContent = \"le-pilote-itinerary-module--timeContent--00c5d\";\nexport var timeRow = \"le-pilote-itinerary-module--timeRow--016a7\";\nexport var timeRowIcon = \"le-pilote-itinerary-module--timeRowIcon--19422\";\nexport var timeRowNoIndex = \"le-pilote-itinerary-module--timeRowNoIndex--92976\";\nexport var title = \"le-pilote-itinerary-module--title--8d301\";\nexport var toggleButtonContainer = \"le-pilote-itinerary-module--toggleButtonContainer--e7e10\";\nexport var tripSegmentDetails = \"le-pilote-itinerary-module--tripSegmentDetails--0de26\";\nexport var tripSegmentDetailsLeft = \"le-pilote-itinerary-module--tripSegmentDetailsLeft--ad27b\";\nexport var unselectedField = \"le-pilote-itinerary-module--unselectedField--4826a\";\nexport var visiblePanel = \"le-pilote-itinerary-module--visiblePanel--e31e1\";\nexport var walkIcone = \"le-pilote-itinerary-module--walkIcone--f5adf\";\nexport var walkTripSegment = \"le-pilote-itinerary-module--walkTripSegment--6972a\";","import React, { useEffect, useRef, useState } from \"react\"\nimport { ReactSVG } from \"react-svg\"\nimport { useForm } from \"react-hook-form\"\nimport {\n  LePiloteItineraryModuleFieldsFragment,\n  LePiloteInfoTrafficLinesIconsFieldsFragment,\n} from \"../../../graphql-types\"\nimport * as styles from \"./le-pilote-itinerary.module.scss\"\nimport { useSpeechToText } from \"../../hooks\"\nimport {\n  getItineraryLePilote,\n  getItineraryLePiloteFormatedResults,\n  getTripPointsFromApi,\n} from \"../../api/le-pilote-api\"\nimport Autocomplete from \"../autocomplete/autocomplete\"\nimport DateInput from \"../layout/form/date-input\"\nimport TimeInput from \"../layout/form/time-input\"\n\ninterface TripStop {\n  type: string\n  value?: string\n  latitude?: string\n  longitude?: string\n}\n\ntype RenderProps = {\n  data: LePiloteItineraryModuleFieldsFragment\n  sendDataToParent: (data: any) => void\n  linesIconsData: LePiloteInfoTrafficLinesIconsFieldsFragment[]\n}\n\nconst LePiloteItineraryForm: React.FC<RenderProps> = ({ data, sendDataToParent, linesIconsData }) => {\n  const component = useRef<HTMLFormElement>()\n  const { control } = useForm<FormData>()\n  const [listStartStops, setListStartStops] = useState(undefined)\n  const [switchedStart, setSwitchedStart] = useState(null)\n  const [switchedEnd, setSwitchedEnd] = useState(null)\n  const [listEndStops, setListEndStops] = useState(undefined)\n  const [departureCoord, setDepartureCoord] = useState(null)\n  const [arrivalCoord, setArrivalCoord] = useState(null)\n\n  const [resultError, setResultError] = useState(null)\n  const [checkboxValue, setCheckboxValue] = useState(false)\n\n  const [invalidDeparture, setInvalidDeparture] = useState(\"\")\n  const [invalidArrival, setInvalidArrival] = useState(\"\")\n\n  function formatStopsResults(stops) {\n    return stops || []\n  }\n\n  function getStartStopList(query) {\n    getTripPointsFromApi(query).then(tripPoints => {\n      if (tripPoints) {\n        let formatedStops = formatStopsResults(tripPoints)\n        setListStartStops(formatedStops)\n        return formatedStops\n      }\n    })\n  }\n\n  function getStartStop(query) {\n    if (departureCoord) {\n      setDepartureCoord(null)\n      return []\n    }\n    if (!query || query == undefined || query == \"\" || query == \"undefined\") {\n      return []\n    }\n    getStartStopList(query)\n    return (Array.isArray(listStartStops) && listStartStops) || []\n  }\n\n  function getEndStop(query) {\n    if (arrivalCoord) {\n      setArrivalCoord(null)\n      return []\n    }\n    if (!query || query == undefined || query == \"\" || query == \"undefined\") {\n      return []\n    }\n    getEndStopList(query)\n    return (Array.isArray(listEndStops) && listEndStops) || []\n  }\n\n  function getEndStopList(query) {\n    getTripPointsFromApi(query).then(tripPoints => {\n      if (tripPoints) {\n        let formatedStops = formatStopsResults(tripPoints)\n        setListEndStops(formatedStops)\n        return formatedStops\n      }\n    })\n  }\n\n  function toLabel(element?: any) {\n    return element ? element.Name : \"Recherche...\"\n  }\n\n  function selectStartStop(startStop) {\n    setDepartureCoord(null)\n    setInvalidDeparture(\"\")\n    setListStartStops(startStop || listStartStops)\n    setTimeout(() => {\n      setIsListeningDeparture(false)\n    }, 1500)\n  }\n\n  function selectEndStop(endStop) {\n    setArrivalCoord(null)\n    setInvalidArrival(\"\")\n    setListEndStops(endStop || listEndStops)\n    setTimeout(() => {\n      setIsListeningArrival(false)\n    }, 1500)\n  }\n\n  function getTripStopsValueAndType(departure: string[], arrival: string[]) {\n    let start: TripStop = { type: \"\", value: null }\n    let end: TripStop = { type: \"\", value: null }\n    if (departure[0] == \"coords\") {\n      start.type = \"COORDINATES\"\n      start.latitude = departure[2]\n      start.longitude = departure[3]\n    } else {\n      start.type = \"4\"\n      start.value = departure[0]\n    }\n    if (arrival[0] == \"coords\") {\n      end.type = \"COORDINATES\"\n      end.latitude = arrival[2]\n      end.longitude = arrival[3]\n    } else {\n      end.type = \"4\"\n      end.value = arrival[0]\n    }\n    return [start, end]\n  }\n\n  useEffect(() => {\n    if (window.location.search) {\n      const queryString = window.location.search\n      if (queryString) {\n        const urlParams = new URLSearchParams(queryString)\n        const departure = urlParams.get(\"departure\").split(\"#\")\n        const arrival = urlParams.get(\"arrival\").split(\"#\")\n        if (departure && departure[0] && departure[1] && departure[2]) {\n          setSwitchedStart({\n            Id: departure[0],\n            Name: departure[1],\n            PointType: departure[2],\n          })\n        }\n        if (arrival && arrival[0] && arrival[1] && arrival[2]) {\n          setSwitchedEnd({\n            Id: arrival[0],\n            Name: arrival[1],\n            PointType: arrival[2],\n          })\n        }\n        const position = getTripStopsValueAndType(departure, arrival)\n        let dateTime = new Date()\n        let dd = String(dateTime.getDate()).padStart(2, \"0\")\n        let mm = String(dateTime.getMonth() + 1).padStart(2, \"0\")\n        let yyyy = dateTime.getFullYear()\n        let hour = dateTime.getHours()\n        let minutes = dateTime.getMinutes().toString()\n        if (minutes.length == 1) {\n          minutes = \"0\" + minutes\n        }\n        let time = hour + \":\" + minutes\n        let today = dd + \"/\" + mm + \"/\" + yyyy\n        getItinerariesData(position[0], position[1], today, time, position[0].type, position[1].type)\n        window.history.replaceState({}, document.title, window.location.href.split(\"?\")[0])\n      }\n    }\n  }, [])\n\n  const submitForm = e => {\n    e.preventDefault()\n    setResultError(null)\n    const form = component.current\n    let departure: any\n    let departurePointType = \"\"\n    let arrival: any\n    let arrivalPointType = \"\"\n    let dateType = form[\"dateType\"].checked\n    if (departureCoord) {\n      departurePointType = \"COORDINATES\"\n      departure = departureCoord\n    } else {\n      departure = form[\"departureLine\"].value.split(\"#\")[0]\n      departurePointType = form[\"departureLine\"].value.split(\"#\")[2]\n    }\n    if (arrivalCoord) {\n      arrivalPointType = \"COORDINATES\"\n      arrival = arrivalCoord\n    } else {\n      arrival = form[\"arrivalLine\"].value.split(\"#\")[0]\n      arrivalPointType = form[\"arrivalLine\"].value.split(\"#\")[2]\n    }\n    let date = form[\"date\"].value\n    let time = form[\"time\"].value\n    if (!departure || departure == \"\" || departure == undefined || departure == \"undefined\") {\n      if (listStartStops && listStartStops.Name) {\n        departure = listStartStops.Id\n        departurePointType = listStartStops.PointType\n      } else if (listStartStops && listStartStops[0] && listStartStops[0].Name) {\n        departure = listStartStops[0].Id\n        departurePointType = listStartStops[0].PointType\n      } else {\n        setInvalidDeparture(data.positionErrorMessage)\n        return\n      }\n    }\n    if (!arrival || arrival == \"\" || arrival == undefined || arrival == \"undefined\") {\n      if (listEndStops && listEndStops.Name) {\n        arrival = listEndStops.Id\n        arrivalPointType = listEndStops.PointType\n      } else if (listEndStops && listEndStops[0] && listEndStops[0].Name) {\n        arrival = listEndStops[0].Id\n        arrivalPointType = listEndStops[0].PointType\n      } else {\n        setInvalidArrival(data.positionErrorMessage)\n        return\n      }\n    }\n    getItinerariesData(departure, arrival, date, time, departurePointType, arrivalPointType, dateType)\n  }\n\n  function getItinerariesData(departureId, arrivalId, date, time, departurePointType, arrivalPointType, dateType) {\n    getItineraryLePilote(departureId, arrivalId, date, time, departurePointType, arrivalPointType, dateType)\n      .then(tripsData => {\n        if (tripsData) {\n          const tripsResults = getItineraryLePiloteFormatedResults(tripsData, linesIconsData)\n          sendDataToParent(tripsResults)\n          setResultError(null)\n        }\n      })\n      .catch(responseError => {\n        if (responseError[0] == 300) {\n          setResultError(data.tripAvailabilityErrorMessage)\n        } else if (responseError[0] == 500) {\n          if (responseError[2].includes(\"ArrivalId\")) {\n            setInvalidArrival(data.positionErrorMessage)\n          } else if (responseError[2].includes(\"DepartureId\")) {\n            setInvalidDeparture(data.positionErrorMessage)\n          }\n        }\n      })\n  }\n\n  const handleGeoLoc = param => e => {\n    if ((departureCoord && param === \"departure\") || (arrivalCoord && param == \"arrival\")) {\n      return\n    }\n\n    if (param === \"departure\") {\n      if (\"geolocation\" in navigator) {\n        navigator.geolocation.getCurrentPosition(\n          function (position) {\n            let departure = document.getElementById(\"linesInputDeparture\") as HTMLInputElement\n            departure.value = \"\"\n            let coords = position.coords\n            coords[\"Name\"] = data.geolocationLabel\n            setDepartureCoord(coords)\n            if (arrivalCoord) {\n              setArrivalCoord(null)\n              setListEndStops(null)\n              setSwitchedEnd(null)\n            }\n            setInvalidDeparture(\"\")\n            setListStartStops(coords)\n            setSwitchedStart(null)\n          },\n          function (error) {\n            if (error.code == error.PERMISSION_DENIED) console.log(\"you denied me :-(\")\n          }\n        )\n      }\n    } else if (param === \"arrival\") {\n      if (\"geolocation\" in navigator) {\n        navigator.geolocation.getCurrentPosition(\n          function (position) {\n            let arrival = document.getElementById(\"linesInputArrival\") as HTMLInputElement\n            arrival.value = \"\"\n            let coords = position.coords\n            coords[\"Name\"] = data.geolocationLabel\n            setArrivalCoord(coords)\n            if (departureCoord) {\n              setDepartureCoord(null)\n              setListStartStops(null)\n              setSwitchedStart(null)\n            }\n            setInvalidArrival(\"\")\n            setListEndStops(coords)\n            setSwitchedEnd(null)\n          },\n          function (error) {\n            if (error.code == error.PERMISSION_DENIED) console.log(\"you denied me :-(\")\n          }\n        )\n      }\n    }\n  }\n\n  function handleSwitch(e) {\n    if (\n      listStartStops &&\n      listStartStops.Name &&\n      listEndStops &&\n      listEndStops.Name &&\n      !departureCoord &&\n      !arrivalCoord\n    ) {\n      const tmpStart = listStartStops\n      const tmpEnd = listEndStops\n      setListStartStops(tmpEnd)\n      setListEndStops(tmpStart)\n      setSwitchedStart(tmpEnd)\n      setSwitchedEnd(tmpStart)\n    } else if (departureCoord) {\n      let departure = departureCoord\n      departureCoord.Name = data.geolocationLabel\n      setArrivalCoord(departure)\n      setListStartStops(listEndStops)\n      setDepartureCoord(null)\n      setSwitchedStart(listEndStops)\n      setSwitchedEnd(departure)\n      setListEndStops(departure)\n    } else if (arrivalCoord) {\n      let arrival = arrivalCoord\n      arrival.Name = data.geolocationLabel\n      setDepartureCoord(arrival)\n      setListEndStops(listStartStops)\n      setArrivalCoord(null)\n      setSwitchedEnd(listStartStops)\n      setSwitchedStart(arrival)\n      setListStartStops(arrival)\n    }\n  }\n\n  const [menuIsOpen, setIsOpen] = useState(false)\n  useEffect(() => {\n    if (window && window.document && document.getElementById(\"sideMenuUlTag\")) {\n      let targetNode = document.getElementById(\"sideMenuUlTag\") as Node\n      let config = { attributes: true, childList: true }\n      let callback = function (mutationsList) {\n        for (let mutation of mutationsList) {\n          if (mutation.type == \"attributes\") {\n            setIsOpen(!menuIsOpen)\n            // console.log('The ' + mutation.attributeName + ' attribute was modified.');\n          }\n        }\n      }\n      // Create an observer instance linked to the callback function\n      let observer = new MutationObserver(callback)\n      // Start observing the target node for configured mutations\n      observer.observe(targetNode, config)\n    }\n  })\n\n  function focusFn() {\n    return\n  }\n\n  const [timeValue, setTimeValue] = useState(null)\n  useEffect(() => {\n    let date = new Date()\n    date.setHours(date.getHours() + Math.round(date.getMinutes() / 60))\n    date.setMinutes(0, 0, 0)\n    let time = date.getTime()\n    setTimeValue(time)\n  }, [timeValue])\n\n  const [isListeningDeparture, setIsListeningDeparture] = useState(false)\n  const [isListeningArrival, setIsListeningArrival] = useState(false)\n  const [departureNote, setDepartureNote] = useState(null)\n  const [arrivalNote, setArrivalNote] = useState(null)\n  const [microphone, setMicrophone] = useState(null)\n\n  useEffect(() => {\n    let mic = useSpeechToText()\n    if (mic != false) {\n      setMicrophone(mic)\n    }\n  }, [microphone])\n\n  useEffect(() => {\n    handleListenDeparture()\n  }, [isListeningDeparture])\n\n  useEffect(() => {\n    handleListenArrival()\n  }, [isListeningArrival])\n\n  const handleListenDeparture = () => {\n    if (microphone) {\n      if (isListeningDeparture && !isListeningArrival) {\n        microphone.start()\n        microphone.onend = () => {\n          console.log(\"continue..\")\n          microphone.start()\n        }\n      } else if (!isListeningDeparture) {\n        microphone.stop()\n        microphone.onend = () => {\n          console.log(\"Stopped Mic on Click\")\n        }\n      }\n      microphone.onstart = () => {\n        console.log(\"Mics on\")\n      }\n\n      microphone.onresult = event => {\n        const transcript = Array.from(event.results)\n          .map(result => result[0])\n          .map(result => result.transcript)\n          .join(\"\")\n        if ((transcript && !departureNote) || (transcript && departureNote && transcript != departureNote.Name)) {\n          setDepartureNote({ Name: transcript })\n          setSwitchedStart({ Name: transcript })\n          document.getElementById(\"linesInputDeparture\").focus()\n          document.getElementById(\"linesInputDeparture\").blur()\n          document.getElementById(\"linesInputDeparture\").focus()\n        }\n        microphone.onerror = errorEvent => {\n          console.log(errorEvent.error)\n        }\n      }\n    }\n  }\n\n  const handleListenArrival = () => {\n    if (microphone) {\n      if (isListeningArrival && !isListeningDeparture) {\n        microphone.start()\n        microphone.onend = () => {\n          console.log(\"continue..\")\n          microphone.start()\n        }\n      } else if (!isListeningArrival) {\n        microphone.stop()\n        microphone.onend = () => {\n          console.log(\"Stopped Mic on Click\")\n        }\n      }\n      microphone.onstart = () => {\n        console.log(\"Mics on\")\n      }\n      microphone.onresult = event => {\n        const transcript = Array.from(event.results)\n          .map(result => result[0])\n          .map(result => result.transcript)\n          .join(\"\")\n        if ((transcript && !arrivalNote) || (transcript && arrivalNote && transcript != arrivalNote.Name)) {\n          setArrivalNote({ Name: transcript })\n          setSwitchedEnd({ Name: transcript })\n          document.getElementById(\"linesInputArrival\").focus()\n          document.getElementById(\"linesInputArrival\").blur()\n          document.getElementById(\"linesInputArrival\").focus()\n        }\n        microphone.onerror = errorEvent => {\n          console.log(errorEvent.error)\n        }\n      }\n    }\n  }\n\n  function handleCheckbox(e) {\n    setCheckboxValue(!checkboxValue)\n  }\n\n  return (\n    <div>\n      <div className={styles.itinerarySearchForm}>\n        <form ref={component} method=\"get\" action={\"#\"} onSubmit={submitForm}>\n          <h1 className={styles.title}>{data.title}</h1>\n          <div className={styles.formContainer}>\n            <div className={styles.coordinates}>\n              <div className={\"\"}>\n                <label htmlFor=\"departureLineInput\">{data.departureLabel}</label>\n                <div className={styles.inputWithIcons}>\n                  <Autocomplete\n                    onChange={selectStartStop}\n                    suggestFunction={getStartStop}\n                    toLabel={toLabel}\n                    id=\"linesInputDeparture\"\n                    placeholder={departureCoord ? data.geolocationLabel : data.departurePlaceholder}\n                    isItineraryForm={true}\n                    value={switchedStart ? switchedStart : departureCoord ? departureCoord : \"\"}\n                    onFocus={() => focusFn}\n                  />\n                  <button\n                    className={styles.inputIcon}\n                    onKeyPress={handleGeoLoc(\"departure\")}\n                    onClick={handleGeoLoc(\"departure\")}\n                    type=\"button\"\n                  >\n                    <ReactSVG\n                      src={data.geolocationIcon.url}\n                      className={styles.inputWithIcons}\n                      beforeInjection={svg => svg.setAttribute(\"aria-label\", data.geolocationIcon.alt || \"\")}\n                    />\n                  </button>\n                  <button\n                    className={styles.inputIcon}\n                    id={\"activateSpeechButtonDeparture\"}\n                    onKeyPress={() => {\n                      setIsListeningDeparture(prevState => !prevState)\n                    }}\n                    onClick={() => {\n                      setIsListeningDeparture(prevState => !prevState)\n                    }}\n                    type=\"button\"\n                  >\n                    <ReactSVG\n                      src={data.microphonePictogram.url}\n                      className={styles.inputWithIcons}\n                      beforeInjection={svg => svg.setAttribute(\"aria-label\", data.micDepartureAltText || \"\")}\n                    />\n                  </button>\n                </div>\n                {invalidDeparture ? <div className={styles.errorMessage}>{invalidDeparture}</div> : null}\n                <input\n                  type=\"hidden\"\n                  name=\"departureLine\"\n                  value={\n                    !departureCoord\n                      ? listStartStops && listStartStops.Id + \"#\" + listStartStops.Name + \"#\" + listStartStops.PointType\n                      : data.geolocationLabel\n                  }\n                />\n              </div>\n              <button className={styles.switchButton} onClick={handleSwitch}>\n                <ReactSVG\n                  src={data.swapDepartureArrivalIcon.url}\n                  className={styles.inputWithIcons}\n                  beforeInjection={svg => svg.setAttribute(\"aria-label\", data.swapDepartureArrivalIcon.alt || \"\")}\n                />\n              </button>\n              <div className={\"\"}>\n                <label htmlFor=\"arrivalLineInput\">{data.arrivalLabel}</label>\n                <div className={styles.inputWithIcons}>\n                  <Autocomplete\n                    onChange={selectEndStop}\n                    suggestFunction={getEndStop}\n                    toLabel={toLabel}\n                    id=\"linesInputArrival\"\n                    placeholder={arrivalCoord ? data.geolocationLabel : data.arrivalPlaceholder}\n                    isItineraryForm={true}\n                    value={switchedEnd ? switchedEnd : arrivalCoord ? arrivalCoord : null}\n                    onFocus={() => focusFn}\n                  />\n                  <button\n                    className={styles.inputIcon}\n                    onKeyPress={handleGeoLoc(\"arrival\")}\n                    onClick={handleGeoLoc(\"arrival\")}\n                    type=\"button\"\n                  >\n                    <ReactSVG\n                      src={data.geolocationIcon.url}\n                      className={styles.inputWithIcons}\n                      beforeInjection={svg => svg.setAttribute(\"aria-label\", data.geolocationIcon.alt || \"\")}\n                    />\n                  </button>\n                  <button\n                    className={styles.inputIcon}\n                    id={\"activateSpeechButtonArrival\"}\n                    onKeyPress={() => {\n                      setIsListeningArrival(prevState => !prevState)\n                    }}\n                    onClick={() => {\n                      setIsListeningArrival(prevState => !prevState)\n                    }}\n                    type=\"button\"\n                  >\n                    <ReactSVG\n                      src={data.microphonePictogram.url}\n                      className={styles.inputWithIcons}\n                      beforeInjection={svg => svg.setAttribute(\"aria-label\", data.micArrivalAltText || \"\")}\n                    />\n                  </button>\n                </div>\n                {invalidArrival ? <div className={styles.errorMessage}>{invalidArrival}</div> : null}\n                <input\n                  type=\"hidden\"\n                  name=\"arrivalLine\"\n                  value={\n                    !arrivalCoord\n                      ? listEndStops && listEndStops.Id + \"#\" + listEndStops.Name + \"#\" + listEndStops.PointType\n                      : data.geolocationLabel\n                  }\n                />\n              </div>\n            </div>\n            <div className={styles.time}>\n              <div className={styles.timeAlign}>\n                <div className={styles.toggleButtonContainer}>\n                  <label className={!checkboxValue ? styles.selectedField : styles.unselectedField}>\n                    {data.dateDepartureTypeLabel}\n                  </label>\n                  <label className={styles.switchButt}>\n                    <input name=\"dateType\" type=\"checkbox\" checked={checkboxValue} onChange={e => handleCheckbox(e)} />\n                    <span className={styles.slider + \" \" + styles.round}></span>\n                  </label>\n                  <label className={checkboxValue ? styles.selectedField : styles.unselectedField}>\n                    {data.dateArrivalTypeLabel}\n                  </label>\n                </div>\n                <div className={!menuIsOpen ? styles.timeRow : styles.timeRowNoIndex}>\n                  <div className={styles.calendarContent}>\n                    <ReactSVG\n                      src={data.calendarIcon.url}\n                      className={styles.timeRowIcon}\n                      beforeInjection={svg => svg.setAttribute(\"aria-label\", data.calendarIcon.alt || \"\")}\n                    />\n                    <DateInput\n                      id=\"date\"\n                      name=\"date\"\n                      required={true}\n                      control={control}\n                      valueSelected={new Date().toLocaleDateString()}\n                      isItineraryForm={true}\n                    />\n                  </div>\n                  <span className={styles.textLine}>{data.preposition}</span>\n                  <div className={styles.timeContent}>\n                    <ReactSVG\n                      src={data.clockIcon.url}\n                      className={styles.timeRowIcon}\n                      beforeInjection={svg => svg.setAttribute(\"aria-label\", data.clockIcon.alt || \"\")}\n                    />\n                    <TimeInput\n                      id=\"time\"\n                      name=\"time\"\n                      required={true}\n                      control={control}\n                      timeValue={timeValue}\n                      isItineraryForm={true}\n                    />\n                  </div>\n                </div>\n              </div>\n            </div>\n            <div className={styles.button}>\n              <button type=\"submit\">{data.searchButtonLabel}</button>\n            </div>\n          </div>\n        </form>\n      </div>\n      {resultError ? (\n        <div className={styles.noTripErrorMessage}>\n          <p>{data.tripAvailabilityErrorMessage}</p>\n        </div>\n      ) : null}\n    </div>\n  )\n}\n\nexport default LePiloteItineraryForm\n","import React, { useEffect, useLayoutEffect, useRef, useState } from \"react\"\nimport { ReactSVG } from \"react-svg\"\nimport {\n  LePiloteInfoTrafficLinesIconsFieldsFragment,\n  LePiloteItineraryModuleFieldsFragment,\n} from \"../../../graphql-types\"\nimport * as config from \"../../../config\"\nimport * as styles from \"./le-pilote-itinerary.module.scss\"\nimport * as mapboxgl from \"mapbox-gl\"\nimport { useIsMobile } from \"../../hooks\"\nimport { updateMapItinerary, updateMapItineraryWalk } from \"./draw-itinerary\"\nimport LePiloteItineraryForm from \"./le-pilote-itinerary-form\"\n// fix issue with loading mapboxgl on production, see https://github.com/mapbox/mapbox-gl-js/issues/10173\n// eslint-disable-next-line import/no-webpack-loader-syntax\nmapboxgl.workerClass = require(\"worker-loader!mapbox-gl/dist/mapbox-gl-csp-worker\").default\n\ntype RenderProps = {\n  mapboxToken: string\n  data: LePiloteItineraryModuleFieldsFragment\n  linesIconsData: LePiloteInfoTrafficLinesIconsFieldsFragment[]\n}\n\nconst LePiloteItinerary: React.FC<RenderProps> = ({ mapboxToken, data, linesIconsData }) => {\n  const [map, setMap] = useState(null)\n\n  const [departureMarker, setDepartureMarker] = useState<mapboxgl.Marker>()\n  const [arrivalMarker, setArrivalMarker] = useState<mapboxgl.Marker>()\n\n  const [selectedTripType, setSelectedTripType] = useState(\"Faster\")\n  const [tripsList, setTripsList] = useState(null)\n\n  const [hideTrip, setHideTrip] = useState(\"\")\n  const mapRef = useRef()\n  const isMobile = useIsMobile()\n\n  useLayoutEffect(() => {\n    mapboxgl.accessToken = mapboxToken\n    const mapInit = new mapboxgl.Map({\n      container: mapRef.current,\n      style: \"mapbox://styles/mapbox/streets-v11\",\n      center: [5.447427, 43.529742],\n      zoom: 10,\n    })\n    setMap(mapInit)\n  }, [])\n\n  useEffect(() => {\n    if (!map) {\n      return\n    }\n  }, [map])\n\n  function getDataFromForm(trips) {\n    setTripsList(trips)\n    drawSelectedTrip(map, selectedTripType, trips)\n    if (!isMobile) {\n      map.flyTo({\n        center: [5.447427 - 0.1, 43.529742],\n      })\n    } else {\n      map.flyTo({\n        center: [5.447427, 43.529742 - 0.08],\n      })\n    }\n  }\n\n  function drawSelectedTrip(mapToUpdate: mapboxgl.Map, selectedTripTypeValue: string, tripsListData: any[]) {\n    let selectedTrip = tripsListData.find(\n      element =>\n        element.tripType == selectedTripTypeValue || (element.TripTitle && element.TripTitle == selectedTripTypeValue)\n    )\n    let walkIndex = 0\n    let rideIndex = 0\n    selectedTrip.sections.map((segment, index) => {\n      if (\"walkSegmentCoordinates\" in segment[0]) {\n        updateMapItineraryWalk(mapToUpdate, segment[0].walkSegmentCoordinates, \"walk-route\" + walkIndex)\n        walkIndex++\n      } else if (\"rideSegmentCoordinates\" in segment[0]) {\n        updateMapItinerary(mapToUpdate, segment[0].rideSegmentCoordinates, \"route\" + rideIndex)\n        rideIndex++\n      }\n    })\n    setMap(mapToUpdate)\n    const newDepartureMarker = updateMarkers(\n      mapToUpdate,\n      departureMarker,\n      \"departure\",\n      data,\n      selectedTrip,\n      selectedTripTypeValue\n    )\n    setDepartureMarker(newDepartureMarker)\n    const newArrivalMarker = updateMarkers(\n      mapToUpdate,\n      arrivalMarker,\n      \"arrival\",\n      data,\n      selectedTrip,\n      selectedTripTypeValue\n    )\n    setArrivalMarker(newArrivalMarker)\n    setMap(mapToUpdate)\n  }\n\n  function showItineraryDetails(e, tripType) {\n    if (tripType != selectedTripType) {\n      setSelectedTripType(tripType)\n      drawSelectedTrip(map, tripType, tripsList)\n    } else {\n      if (hideTrip == selectedTripType) {\n        setHideTrip(\"\")\n      } else {\n        setHideTrip(selectedTripType)\n      }\n    }\n  }\n\n  function getTripSubtitle(departureLabel, departureTime, arrivalLabel, arrivalTime) {\n    return (\n      departureLabel +\n      \": \" +\n      departureTime.split(\" \")[1].split(\":\", 2).slice(0, 2).join(\":\") +\n      \" \" +\n      \"> \" +\n      arrivalLabel +\n      \": \" +\n      arrivalTime.split(\" \")[1].split(\":\", 2).slice(0, 2).join(\":\")\n    )\n  }\n\n  function getFormatedDuration(duration) {\n    return duration.replace(\"PT\", \"\").replace(\"H\", \":\").replace(\"M\", \":\").replace(\"S\", \"\").split(\":\")[0]\n  }\n\n  function getTripRideSectionDetails(lineIndicationLabel, lineNumber, durationIndicationLabel, duration, arrival) {\n    return (\n      lineIndicationLabel +\n      \" \" +\n      lineNumber +\n      \" \" +\n      durationIndicationLabel +\n      \" \" +\n      getFormatedDuration(duration) +\n      data.minuteLabel +\n      \" \" +\n      data.destinationIndicationLabel +\n      \" \" +\n      arrival\n    )\n  }\n\n  return (\n    <div className={styles.itineraryContainer} id=\"itineraryContainer\">\n      {map ? (\n        <LePiloteItineraryForm\n          data={data}\n          sendDataToParent={getDataFromForm}\n          linesIconsData={linesIconsData}\n        ></LePiloteItineraryForm>\n      ) : null}\n      <div ref={mapRef} className={styles.map} id={\"itineraryMap\"}>\n        <div className={tripsList ? styles.itineraryCard + \" \" + styles.itineraryCardDisplay : styles.itineraryCard}>\n          {tripsList &&\n            tripsList.map((x, index) => {\n              return (\n                <div className={styles.itineraryCardWrapper} id={\"itineraryCard-\" + index}>\n                  <div className={styles.itineraryCardHeader}>\n                    <h3>\n                      {x.tripType == \"Faster\"\n                        ? data.fastestItinerary\n                        : x.tripType == \"LessChange\"\n                          ? data.shortestItinerary\n                          : data.mostDirectItinerary}\n                    </h3>\n                    <div className={styles.subtitle}>\n                      {getTripSubtitle(\n                        data.departureLabel,\n                        x.fullTripData.DepartureTime,\n                        data.arrivalLabel,\n                        x.fullTripData.ArrivalTime\n                      )}\n                    </div>\n                  </div>\n                  <div className={styles.itineraryCardDetailsClosed}>\n                    {x.sections.map(section => {\n                      return section[0].rideSegmentDetails ? (\n                        <div className={styles.lineIconWrapper + \" \" + styles.lineIconWrapperDetailsClosed}>\n                          {section[0].lineIcon[0] ? (\n                            <img className={styles.lineIcon} src={section[0].lineIcon[0].url}></img>\n                          ) : (\n                            <div className={styles.lineText}>{section[0].rideSegmentDetails.Line.Number} </div>\n                          )}\n                        </div>\n                      ) : null\n                    })}\n                    <div className={styles.duration}>\n                      {getFormatedDuration(x.fullTripData.Duration) + data.minuteLabel}\n                    </div>\n                  </div>\n                  <div\n                    className={\n                      selectedTripType != x.tripType || (selectedTripType == x.tripType && hideTrip == selectedTripType)\n                        ? styles.panel\n                        : styles.visiblePanel\n                    }\n                  >\n                    {x.sections.map(section => {\n                      return (\n                        <div className={styles.tripSegmentDetails}>\n                          <div className={styles.tripSegmentDetailsLeft}>\n                            <div>\n                              {section[0].rideSegmentDetails\n                                ? section[0].rideSegmentDetails.Departure.Time.split(\" \")[1]\n                                    .split(\":\", 2)\n                                    .slice(0, 2)\n                                    .join(\":\")\n                                : section[0].walkSegmentDetails.Departure.Time.split(\" \")[1]\n                                    .split(\":\", 2)\n                                    .slice(0, 2)\n                                    .join(\":\")}\n                            </div>\n                            <div className={styles.lineIconWrapper}>\n                              {section[0].rideSegmentDetails && section[0].lineIcon[0] ? (\n                                <img className={styles.lineIcon} src={section[0].lineIcon[0].url}></img>\n                              ) : section[0].walkSegmentDetails ? (\n                                <img\n                                  src={data.walkSegmentIcon.url}\n                                  alt={data.walkSegmentIcon.alt}\n                                  className={styles.lineIcon + \" \" + styles.walkIcone}\n                                ></img>\n                              ) : (\n                                <div className={styles.lineText}>{section[0].rideSegmentDetails.Line.Number} </div>\n                              )}\n                            </div>\n                          </div>\n                          <div className={styles.separator}></div>\n                          <div className={\"\"}>\n                            <div className={styles.sectionName}>\n                              {section[0].rideSegmentDetails\n                                ? section[0].rideSegmentDetails.Departure?.StopPlace?.Name ||\n                                  section[0].rideSegmentDetails.Line.Name\n                                : section[0].walkSegmentDetails.Departure.Site.Name}\n                            </div>\n                            <div className={styles.sectionDirection}>\n                              {section[0].rideSegmentDetails\n                                ? data.directionLabel + \" \" + section[0].rideSegmentDetails.Direction.Name\n                                : data.directionLabel + \" \" + section[0].walkSegmentDetails.Arrival.Site.Name}\n                            </div>\n\n                            <div className={styles.sectionDuration}>\n                              {section[0].rideSegmentDetails\n                                ? getTripRideSectionDetails(\n                                    data.lineIndicationLabel,\n                                    section[0].rideSegmentDetails.Line.Number,\n                                    data.durationIndicationLabel,\n                                    section[0].rideSegmentDetails.Duration,\n                                    section[0].rideSegmentDetails.Arrival.Site\n                                      ? section[0].rideSegmentDetails.Arrival.Site.Name\n                                      : section[0].rideSegmentDetails.Arrival.StopPlace.Name\n                                  )\n                                : data.walkIndicationLabel +\n                                  \" \" +\n                                  getFormatedDuration(section[0].walkSegmentDetails.Duration) +\n                                  data.minuteLabel +\n                                  \" \" +\n                                  data.destinationIndicationLabel +\n                                  \" \" +\n                                  section[0].walkSegmentDetails?.Arrival?.Site?.Name}\n                            </div>\n                          </div>\n                        </div>\n                      )\n                    })}\n                  </div>\n                  <div>\n                    <button className={styles.accordion} onClick={e => showItineraryDetails(e, x.tripType)}>\n                      <ReactSVG\n                        src={data.itineraryDetailsButtonIcon.url}\n                        alt={data.itineraryDetailsButtonIcon.alt}\n                        className={\n                          selectedTripType == x.tripType && hideTrip != selectedTripType\n                            ? styles.expandArrow + \" \" + styles.rotatedImage\n                            : styles.expandArrow\n                        }\n                        beforeInjection={svg => svg.setAttribute(\"aria-hidden\", \"true\")}\n                      />\n                    </button>\n                  </div>\n                </div>\n              )\n            })}\n        </div>\n      </div>\n    </div>\n  )\n}\n\nfunction updateMarkers(\n  map: mapboxgl.Map,\n  previousMarker: mapboxgl.Marker,\n  markerType: string,\n  data: any,\n  selectedTrip?: any,\n  selectedTripType?: string\n): mapboxgl.Marker {\n  const primaryColor = `rgb(${config.primary_color.red}, ${config.primary_color.green}, ${config.primary_color.blue})`\n  if (previousMarker) {\n    previousMarker.remove()\n  }\n  let departureMarker: any\n  let arrivalMarker: any\n  if (selectedTrip) {\n    selectedTrip.sections.map(x => {\n      if (x[0].rideSegmentCoordinates) {\n        let ln = x[0].rideSegmentCoordinates.length\n        if (!departureMarker) {\n          departureMarker = x[0].rideSegmentCoordinates[0]\n        }\n        arrivalMarker = x[0].rideSegmentCoordinates[ln - 1]\n      }\n    })\n    if (markerType == \"departure\") {\n      const markerElement = document.createElement(\"img\")\n      markerElement.src = data.mapDepartureMarker.url\n      markerElement.alt = data.mapDepartureMarker.alt\n      markerElement.style.width = \"28px\"\n      markerElement.style.height = \"28px\"\n      return new mapboxgl.Marker({\n        color: primaryColor,\n        element: markerElement,\n      })\n        .setLngLat([departureMarker[0], departureMarker[1]])\n        .addTo(map)\n    } else {\n      const markerElement = document.createElement(\"img\")\n      markerElement.src = data.mapArrivalMarker.url\n      markerElement.alt = data.mapArrivalMarker.alt\n      markerElement.style.width = \"28px\"\n      markerElement.style.height = \"28px\"\n      return new mapboxgl.Marker({\n        color: primaryColor,\n        element: markerElement,\n      })\n        .setLngLat([arrivalMarker[0], arrivalMarker[1]])\n        .addTo(map)\n    }\n  }\n}\n\nexport default LePiloteItinerary\n","import * as mapboxgl from \"mapbox-gl\"\n\nexport function updateMapItineraryWalk(map: mapboxgl.Map, coordinates, mapId: string) {\n  if (map.getSource(mapId)) {\n    map.removeLayer(mapId)\n    map.removeSource(mapId)\n  }\n  map.addSource(mapId, {\n    type: \"geojson\",\n    data: {\n      type: \"Feature\",\n      properties: {},\n      geometry: {\n        type: \"LineString\",\n        coordinates: coordinates,\n      },\n    },\n  })\n  map.addLayer({\n    id: mapId,\n    type: \"line\",\n    source: mapId,\n    layout: {\n      \"line-join\": \"round\",\n      \"line-cap\": \"round\",\n    },\n    paint: {\n      \"line-color\": \"#A9A9A9\",\n      \"line-width\": 6,\n      \"line-dasharray\": [0, 2],\n    },\n  })\n}\n\nexport function updateMapItinerary(map: mapboxgl.Map, coordinates, mapId: string) {\n  if (map.getSource(mapId)) {\n    map.removeLayer(mapId)\n    map.removeSource(mapId)\n  }\n\n  coordinates.map((x, index) => {\n    if (x[1] > 44) {\n      console.log(x[1])\n      console.log(index)\n    }\n  })\n  map.addSource(mapId, {\n    type: \"geojson\",\n    data: {\n      type: \"Feature\",\n      properties: {},\n      geometry: {\n        type: \"LineString\",\n        coordinates: coordinates,\n      },\n    },\n  })\n  map.addLayer({\n    id: mapId,\n    type: \"line\",\n    source: mapId,\n    layout: {\n      \"line-join\": \"round\",\n      \"line-cap\": \"round\",\n    },\n    paint: {\n      \"line-color\": \"#000\",\n      \"line-width\": 4,\n    },\n  })\n}\n","import React, { useEffect, useRef, useState } from \"react\"\n\nimport { AroundMeActigraphModuleFieldsFragment } from \"../../../graphql-types\"\ndeclare global {\n  interface Window {\n    KWH: {\n      container?: string\n    }\n  }\n}\n\ntype RenderProps = {\n  data: AroundMeActigraphModuleFieldsFragment\n}\n\nconst AroundMeActigraph: React.FC<RenderProps> = ({ data }) => {\n  const component = useRef<HTMLDivElement>()\n  function useForceUpdate() {\n    const [value, setValue] = useState(0)\n    return () => setValue(value + 1)\n  }\n  const forceUpdate = useForceUpdate()\n  useEffect(() => {\n    const existingScript = document.getElementById(\"actigraphScript\")\n    if (!existingScript) {\n      return\n    }\n    const insertedIframe = document.getElementById(\"widgetHoraires\")\n    if (!insertedIframe || insertedIframe.innerHTML == \"\") {\n      forceUpdate()\n    }\n  })\n\n  return (\n    <div id=\"\" className=\" \" ref={component}>\n      <script\n        type=\"text/javascript\"\n        id={\"actigraph-0\"}\n        dangerouslySetInnerHTML={{\n          __html: \"window.KWH = {}; window.KWH.container='widgetHoraires';\",\n        }}\n      ></script>\n      <script src={data.src} async={true} type=\"text/javascript\" id={\"actigraphScript\"}></script>\n      <div id=\"widgetHoraires\"></div>\n    </div>\n  )\n}\n\nexport default AroundMeActigraph\n","import React, { useEffect } from \"react\"\nimport { OskarPaymentModuleFieldsFragment } from \"../../../graphql-types\"\nimport * as styles from \"./oskar-payment.module.scss\"\n\ntype RenderProps = {\n  data: OskarPaymentModuleFieldsFragment\n}\n\nconst OskarPayment: React.FC<RenderProps> = ({ data }) => {\n  useEffect(() => {\n    if (window) {\n      if (document.head.attachShadow) {\n        let paymentModuleScript = document.createElement(\"script\")\n        paymentModuleScript.type = \"text/javascript\"\n        paymentModuleScript.async = true\n        paymentModuleScript.src = \"./oskar-payment/oskar-payment.js\"\n        document.getElementsByTagName(\"head\")[0].appendChild(paymentModuleScript)\n      } else {\n        let app = document.getElementsByTagName(\"oskar-payment\")[0]\n        app.innerHTML =\n          '<p id=\"error-msg\">Votre navigateur n\\'est pas compatible avec le module de paiement en ligne. Veuillez utiliser un autre navigateur comme Google Chrome ou Mozilla Firefox<p>'\n        document.getElementById(\"error-msg\").style.color = \"white\"\n        document.getElementById(\"error-msg\").style.backgroundColor = \"red\"\n      }\n    }\n  })\n  return (\n    <div className={styles.oskarContainer}>\n      <div dangerouslySetInnerHTML={{ __html: data.moduleTag }}></div>\n    </div>\n  )\n}\n\nexport default OskarPayment\n","// extracted by mini-css-extract-plugin\nexport var oskarContainer = \"oskar-payment-module--oskarContainer--6aedc\";","import React, { useEffect, useState } from \"react\"\nimport RichDatoCmsContent from \"../rich-datocms-content/rich-datocms-content\"\nimport * as styles from \"./info-traffic-detail.module.scss\"\nimport sanitizeHtml from \"sanitize-html\"\nimport { useQuerySubscription } from \"react-datocms\"\nimport config from \"../../../config.js\"\n\ntype RenderProps = {}\n\nconst InfoTrafficDetailModule: React.FC<RenderProps> = () => {\n  const [info, setInfo] = useState(null)\n  const [dataInfo, setData] = useState(null)\n  const [trafficId, setTrafficId] = useState(null)\n\n  useEffect(() => {\n    let id\n    if (!trafficId) {\n      if (window.location.hash) {\n        const queryString = window.location.hash\n        if (queryString) {\n          id = queryString.split(\"#\")[1]\n          setTrafficId(id)\n        }\n      }\n    }\n  }, [trafficId])\n\n  useEffect(() => {\n    if (dataInfo) {\n      const parsedInfo = dataInfo.infoTraffic\n      setInfo(parsedInfo)\n    }\n  }, [dataInfo])\n\n  const { data } = useQuerySubscription({\n    enabled: !!trafficId,\n    query: `\n      query infoQuery {\n        infoTraffic(locale: ${config.locale}, filter: {id: {eq: \"${trafficId}\"}}) {\n          id\n          title\n          disruptionType\n          pictogram {\n            url\n            alt\n            format\n          }\n          lines {\n            id\n            name\n            number\n            pictogram {\n              url\n              alt\n              format\n            }     \n          }\n          shortDescription\n          slug\n          description {\n            ... on SimpleTextRecord {\n              __typename\n              id\n              content\n            }\n            ... on CustomTextRecord {\n              __typename\n              id\n              customContent {\n                blocks\n                links {\n                  __typename\n                  ... on PageRecord {\n                    id\n                    slug\n                    title\n                  }\n                  ... on HomeRecord {\n                    id\n                    title\n                  }\n                  ... on DocumentRecord {\n                    id\n                    title\n                    document {\n                      id\n                      url\n                      alt\n                      title\n                    }       \n                  }\n                }\n                value\n              }\n            }\n            ... on TextWithImageRecord {\n              __typename\n              id\n              text\n              image {\n                format\n                url\n                alt\n              }\n            }\n          }\n        }\n      }`,\n    token: config.readOnlyApi,\n  })\n\n  if (data) {\n    if (data != dataInfo) {\n      setData(data)\n    }\n  }\n\n  return (\n    info && (\n      <div className={styles.container}>\n        <ul className={styles.linesPictoContainer}>\n          {info &&\n            info.lines.map(line => {\n              return (\n                <li key={line.id} className={styles.listNoStyle}>\n                  <div className={styles.linePictoBox}>\n                    <img className={styles.linePicto} src={line.pictogram.url} alt={line.pictogram.alt} />\n                  </div>\n                </li>\n              )\n            })}\n        </ul>\n        <div className={styles.titleBox}>\n          <div className={styles.pictoBoxTraffic}>\n            <img src={info.pictogram.url} alt={info.pictogram.alt} />\n          </div>\n          <h3 className={styles.title}>{info.title}</h3>\n        </div>\n\n        <div\n          className={styles.shortDescription}\n          dangerouslySetInnerHTML={{\n            __html: sanitizeHtml(info.shortDescription),\n          }}\n        />\n        <RichDatoCmsContent data={info.description}></RichDatoCmsContent>\n      </div>\n    )\n  )\n}\n\nexport default InfoTrafficDetailModule\n","// extracted by mini-css-extract-plugin\nexport var container = \"info-traffic-detail-module--container--bb7fa\";\nexport var corpus = \"info-traffic-detail-module--corpus--423e7\";\nexport var image = \"info-traffic-detail-module--image--d1156\";\nexport var infoTrafficImage = \"info-traffic-detail-module--infoTrafficImage--89e06\";\nexport var linePicto = \"info-traffic-detail-module--linePicto--e39ca\";\nexport var linePictoBox = \"info-traffic-detail-module--linePictoBox--b3eda\";\nexport var linesPictoContainer = \"info-traffic-detail-module--linesPictoContainer--da1eb\";\nexport var listNoStyle = \"info-traffic-detail-module--listNoStyle--82153\";\nexport var pictoBoxTraffic = \"info-traffic-detail-module--pictoBoxTraffic--45eec\";\nexport var shortDescription = \"info-traffic-detail-module--shortDescription--2e38f\";\nexport var svgImage = \"info-traffic-detail-module--svgImage--3e272\";\nexport var title = \"info-traffic-detail-module--title--d711d\";\nexport var titleBox = \"info-traffic-detail-module--titleBox--746c2\";","// extracted by mini-css-extract-plugin\nexport var title = \"ter-dakar-itinerary-search-module-module--title--f9e0f\";\nexport var widgetWrapper = \"ter-dakar-itinerary-search-module-module--widgetWrapper--0cba6\";","import React, { useEffect } from \"react\"\nimport { TerDakarItinerarySearchModuleFieldsFragment } from \"../../../graphql-types\"\nimport * as styles from \"./ter-dakar-itinerary-search-module.module.scss\"\n\ntype RenderProps = {\n  data: TerDakarItinerarySearchModuleFieldsFragment\n}\n\nconst TerDakarItinerarySearchModule: React.FC<RenderProps> = ({ data }) => {\n  useEffect(() => {\n    if (typeof window === \"undefined\") {\n      return\n    }\n    const script = document.createElement(\"script\")\n    document.getElementsByTagName(\"body\")[0].appendChild(script)\n    script.async = true\n    script.type = \"text/javascript\"\n    script.src = `https://56.preprod-sim.instant-system.com/fr/widget/place-journey-map?token=${data.token}`\n  }, [])\n\n  useEffect(() => {\n    if (typeof window === \"undefined\") {\n      return\n    }\n    const dakarWidget = document.getElementById(\"is-WidgetWrapper\")\n    dakarWidget.parentElement.style.zIndex = \"2\"\n  }, [])\n\n  return (\n    <div>\n      <h3 className={styles.title}>{data.title}</h3>\n      <div className={styles.widgetWrapper} id=\"is-WidgetWrapper\" />\n      <div className={styles.widgetWrapper} id=\"is-MapWrapper\" />\n    </div>\n  )\n}\n\nexport default TerDakarItinerarySearchModule\n","// extracted by mini-css-extract-plugin\nexport var arrow = \"button-module--arrow--d6aa9\";\nexport var btnImage = \"button-module--btnImage--c2732\";\nexport var buttonContainer = \"button-module--buttonContainer--7d502\";\nexport var buttonContainerImg = \"button-module--buttonContainerImg--2a0cc\";\nexport var buttonContent = \"button-module--buttonContent--f87bb\";\nexport var buttonContentImg = \"button-module--buttonContentImg--41f96\";\nexport var container = \"button-module--container--72911\";\nexport var content = \"button-module--content--311b5\";\nexport var image = \"button-module--image--1df9e\";\nexport var pictogram = \"button-module--pictogram--4e594\";\nexport var textContent = \"button-module--textContent--348d6\";\nexport var title = \"button-module--title--afc25\";","import React, { useState } from \"react\"\nimport { ButtonFieldsFragment } from \"../../../graphql-types\"\nimport * as styles from \"./button.module.scss\"\nimport { graphql } from \"gatsby\"\nimport { ReactSVG } from \"react-svg\"\n\ntype RenderProps = {\n  data: ButtonFieldsFragment\n}\n\nconst Button: React.FC<RenderProps> = ({ data }) => {\n  const [hoverButton, setHoverButton] = useState(false)\n\n  const renderButton = (\n    title,\n    pictogram,\n    internalLink,\n    externalLink,\n    color,\n    hoverColor,\n    isButtonImg,\n    imgContent,\n    hover,\n    setHover\n  ) => {\n    if (isButtonImg) {\n      return (\n        <button\n          className={styles.buttonContainerImg}\n          onMouseOver={() => setHover(true)}\n          onMouseLeave={() => setHover(false)}\n        >\n          <a\n            href={\n              internalLink && internalLink[0]\n                ? internalLink[0].__typename == \"DatoCmsPage\"\n                  ? `/${internalLink[0].slug}`\n                  : \"/\"\n                : externalLink\n                  ? externalLink\n                  : \"#\"\n            }\n            className={!imgContent ? styles.buttonContent : styles.buttonContentImg}\n            target={internalLink && internalLink[0] ? \"_self\" : externalLink ? \"_blank\" : \"_self\"}\n          >\n            {!imgContent ? (\n              <></>\n            ) : imgContent.format === \"svg\" ? (\n              <ReactSVG\n                src={imgContent.url}\n                className={styles.btnImage}\n                aria-hidden={true}\n                beforeInjection={svg => svg.setAttribute(\"alt\", imgContent.alt || \"\")}\n              />\n            ) : (\n              <img src={imgContent.url} alt={imgContent.alt || \"\"} className={styles.btnImage} />\n            )}\n          </a>\n        </button>\n      )\n    } else {\n      return (\n        <button\n          className={styles.buttonContainer}\n          style={\n            color?.hex && {\n              backgroundColor: hover ? hoverColor.hex : color.hex,\n              border: hover && `1px solid ${color.hex}`,\n            }\n          }\n          onMouseOver={() => setHover(true)}\n          onMouseLeave={() => setHover(false)}\n        >\n          <a\n            href={\n              internalLink && internalLink[0]\n                ? internalLink[0].__typename == \"DatoCmsPage\"\n                  ? `/${internalLink[0].slug}`\n                  : \"/\"\n                : externalLink\n                  ? externalLink\n                  : \"#\"\n            }\n            className={styles.buttonContent}\n            target={internalLink && internalLink[0] ? \"_self\" : externalLink ? \"_blank\" : \"_self\"}\n          >\n            {pictogram && displayPictogram(pictogram, color, hoverColor, hover)}\n            <div className={styles.textContent}>\n              <div className={styles.title} style={{ color: hover ? color?.hex : hoverColor?.hex }}>\n                {title}\n              </div>\n            </div>\n          </a>\n        </button>\n      )\n    }\n  }\n\n  const displayPictogram = (pictogram, color, color2, hover) => {\n    return (\n      <div className={styles.content}>\n        {pictogram.format === \"svg\" ? (\n          <ReactSVG\n            className={styles.pictogram}\n            src={pictogram.url}\n            aria-hidden={true}\n            beforeInjection={svg => svg.querySelector(\"path\").setAttribute(\"fill\", hover ? color.hex : color2.hex)}\n          />\n        ) : (\n          <img src={pictogram.url} alt={pictogram.alt || \"\"} className={styles.image} aria-hidden={true} />\n        )}\n      </div>\n    )\n  }\n\n  return (\n    <div className={styles.container}>\n      {renderButton(\n        data.title,\n        data.pictogram,\n        data.internalPageLink,\n        data.externalPageLink,\n        data.color,\n        data.hoverColor,\n        data.isButtonImg,\n        data.imgContent,\n        hoverButton,\n        setHoverButton\n      )}\n    </div>\n  )\n}\n\nexport const fragments = graphql`\n  fragment ButtonFields on DatoCmsButton {\n    __typename\n    id\n    title\n    isButtonImg\n    imgContent {\n      alt\n      format\n      url\n    }\n    pictogram {\n      alt\n      format\n      url\n    }\n    color {\n      hex\n    }\n    hoverColor {\n      hex\n    }\n    internalPageLink {\n      ... on DatoCmsHome {\n        __typename\n      }\n      ... on DatoCmsPage {\n        __typename\n        slug\n      }\n    }\n    externalPageLink\n  }\n`\nexport default Button\n","const vianavigoItineraryScript = function (token, configId) {\n  window.vianavigo.token = token\n  window.vianavigo.itinerary(\"#mon_selecteur\", configId, \"portrait\")\n  window.vianavigo.override_base_url = \"https://mb-api-iv.iledefrance-mobilites.fr/\"\n  window.vianavigo.override_external_base = \"https://mb-iv.iledefrance-mobilites.fr/\"\n}\n\nexport default vianavigoItineraryScript\n","import React, { useEffect, useState } from \"react\"\nimport { VianavigoItineraryModuleFieldsFragment } from \"../../../graphql-types\"\nimport * as styles from \"./vianavigo-itinerary.module.scss\"\n\nimport vianavigoItineraryScript from \"./vianavigo-itinerary-script\"\n\ntype RenderProps = {\n  data: VianavigoItineraryModuleFieldsFragment\n}\n\nconst VianavigoItinerary: React.FC<RenderProps> = ({ data }) => {\n  const [scriptLoaded, setScriptLoaded] = useState(false)\n\n  useEffect(() => {\n    if (window && window.document) {\n      if (!scriptLoaded) {\n        let itineraryLinkTag = document.createElement(\"link\")\n        itineraryLinkTag.href = \"https://mb-iv.iledefrance-mobilites.fr/v2.1/css/vianavigo.itinerary.css\"\n        itineraryLinkTag.type = \"text/css\"\n        itineraryLinkTag.rel = \"stylesheet\"\n        document.getElementsByTagName(\"head\")[0].appendChild(itineraryLinkTag)\n        let vendorScript = document.createElement(\"script\")\n        vendorScript.type = \"text/javascript\"\n        vendorScript.src = \"https://mb-iv.iledefrance-mobilites.fr/v2.1/vianavigo.vendor.js\"\n        document.getElementsByTagName(\"head\")[0].appendChild(vendorScript)\n        vendorScript.onload = function () {\n          let itineraryScript = document.createElement(\"script\")\n          itineraryScript.type = \"text/javascript\"\n          itineraryScript.src = \"https://mb-iv.iledefrance-mobilites.fr/v2.1/vianavigo.itinerary.js\"\n          itineraryScript.id = \"itineraryJsVianavigo\"\n          document.getElementsByTagName(\"head\")[0].appendChild(itineraryScript)\n          itineraryScript.onload = function () {\n            setScriptLoaded(true)\n          }\n        }\n      }\n    }\n  }, [])\n\n  return (\n    <div className={styles.scriptContainer} id=\"scriptContainer\">\n      <div id=\"mon_selecteur\"></div>\n      {scriptLoaded ? <script>{vianavigoItineraryScript(data.token, data.configurationId)}</script> : null}\n    </div>\n  )\n}\n\nexport default VianavigoItinerary\n","// extracted by mini-css-extract-plugin\nexport var mon_selecteur = \"vianavigo-itinerary-module--mon_selecteur--5de07\";\nexport var scriptContainer = \"vianavigo-itinerary-module--scriptContainer--e9aa2\";","import React, { useEffect } from \"react\"\nimport {\n  AllNewsFieldsFragment,\n  AllNewsModuleConfigurationFieldsFragment,\n  AroundMeActigraphModuleFieldsFragment,\n  ButtonFieldsFragment,\n  CustomFormModuleFieldsFragment,\n  CustomFormsConfigurationFieldsFragment,\n  CustomTextFieldsFragment,\n  EmbeddedIframeFieldsFragment,\n  FooterMenuFieldsFragment,\n  HeaderMenuFieldsFragment,\n  HighlightFieldsFragment,\n  InfoTrafficDetailModuleFieldsFragment,\n  InfoTrafficFieldsFragment,\n  InfoTrafficModuleFieldsFragment,\n  ItineraryModuleConfigurationFieldsFragment,\n  ItineraryModuleFieldsFragment,\n  LePiloteInfoTrafficLinesIconsFieldsFragment,\n  LePiloteInfoTrafficModuleFieldsFragment,\n  LePiloteItineraryModuleFieldsFragment,\n  LePiloteNextTripsSearchModuleFieldsFragment,\n  LinesListFieldsFragment,\n  LostObjectsFormConfigurationFieldsFragment,\n  LostObjectsFormFieldsFragment,\n  LostObjectsFormLineFieldsFragment,\n  NewsListFieldsFragment,\n  NextDeparturesModuleConfigurationFieldsFragment,\n  NextDeparturesModuleFieldsFragment,\n  OskarPaymentModuleFieldsFragment,\n  SchedulesSearchFieldsFragment,\n  SchedulesSearchModuleFieldsFragment,\n  SimpleTextFieldsFragment,\n  SmsAlertFormFieldsFragment,\n  SmsAlertInfoTrafficFormConfigurationFieldsFragment,\n  TerDakarItinerarySearchModuleFieldsFragment,\n  TextWithImageFieldsFragment,\n  TextWithVideoFieldsFragment,\n  TicketOfficeSearchFieldsFragment,\n  TicketOfficeSearchModuleConfigurationFieldsFragment,\n  TicketOfficeSearchModuleFieldsFragment,\n  TitleBlockFieldsFragment,\n  TransportTitleListFieldsFragment,\n  TransportTitleSearchFieldsFragment,\n  TransportTitleSearchModuleConfigFieldsFragment,\n  VianavigoItineraryModuleFieldsFragment,\n  VideoOnlyFieldsFragment,\n  WebsiteMapModuleFieldsFragment,\n} from \"../../../graphql-types\"\nimport sanitizeHtml from \"sanitize-html\"\nimport * as styles from \"./rich-datocms-content.module.scss\"\nimport { graphql } from \"gatsby\"\nimport SchedulesSearch from \"../schedules-search/schedules-search\"\nimport TransportTitleSearch from \"../transport-title-search/transport-title-search\"\nimport TicketOfficeSearch from \"../ticket-office-search/ticket-office-search\"\nimport ItineraryModule from \"../itinerary-module/itinerary-module\"\nimport NextDeparturesModule from \"../next-departures-module/next-departures-module\"\nimport AllNews from \"../all-news/all-news\"\nimport InfoTraffic from \"../info-traffic/info-traffic\"\nimport CustomForm from \"../custom-form/custom-form\"\nimport WebsiteMap from \"../website-map/website-map\"\nimport { render } from \"datocms-structured-text-to-html-string\"\nimport LostObjectsForm from \"../lost-objects/lost-objects-form\"\nimport SmsAlertInfoTrafficForms from \"../sms-alert/sms-alert-forms\"\nimport InfoTrafficLePilote from \"../info-traffic-le-pilote/info-traffic-le-pilote\"\nimport TitlePage from \"../title-page/title-page\"\nimport LePiloteNextTripsSearch from \"../le-pilote-next-trips-search/le-pilote-next-trips-search\"\nimport LePiloteItinerary from \"../le-pilote-itinerary/le-pilote-itinerary\"\nimport AroundMeActigraph from \"../around-me-actigraph/around-me-actigraph\"\nimport OskarPayment from \"../oskar-payment-module/oskar-payment\"\nimport InfoTrafficDetailModule from \"../info-traffic/info-traffic-detail-module\"\nimport TerDakarItinerarySearchModule from \"../ter-dakar-itinerary-search-module/ter-dakar-itinerary-search-module\"\nimport { pushGtmEvent } from \"../../gtm/interaction-event\"\nimport Button from \"../button/button\"\nimport VianavigoItinerary from \"../vianavigo-itinerary/vianavigo-itinerary\"\n\ntype RichDatoCmsContentUnion = { __typename: string } & (\n  | SimpleTextFieldsFragment\n  | CustomTextFieldsFragment\n  | TextWithImageFieldsFragment\n  | TextWithVideoFieldsFragment\n  | HighlightFieldsFragment\n  | VideoOnlyFieldsFragment\n  | EmbeddedIframeFieldsFragment\n  | SchedulesSearchFieldsFragment\n  | TicketOfficeSearchFieldsFragment\n  | TransportTitleSearchFieldsFragment\n  | ItineraryModuleFieldsFragment\n  | NextDeparturesModuleFieldsFragment\n  | TransportTitleListFieldsFragment\n  | NewsListFieldsFragment\n  | InfoTrafficFieldsFragment\n  | AllNewsModuleConfigurationFieldsFragment\n  | CustomFormModuleFieldsFragment\n  | WebsiteMapModuleFieldsFragment\n  | (HeaderMenuFieldsFragment & FooterMenuFieldsFragment)\n  | LostObjectsFormFieldsFragment\n  | SmsAlertFormFieldsFragment\n  | LePiloteInfoTrafficLinesIconsFieldsFragment\n  | LePiloteItineraryModuleFieldsFragment\n  | AroundMeActigraphModuleFieldsFragment\n  | OskarPaymentModuleFieldsFragment\n  | InfoTrafficDetailModuleFieldsFragment\n  | TerDakarItinerarySearchModuleFieldsFragment\n  | ButtonFieldsFragment\n  | VianavigoItineraryModuleFieldsFragment\n)\n\ntype RenderProps = {\n  data: RichDatoCmsContentUnion[]\n  pageTitle?: string\n  schedulesSearchData?: LinesListFieldsFragment[]\n  schedulesSearchModuleConfiguration?: SchedulesSearchModuleFieldsFragment\n  ticketOfficeSearchData?: TicketOfficeSearchFieldsFragment[]\n  ticketOfficeSearchModuleConfiguration?: TicketOfficeSearchModuleConfigurationFieldsFragment\n  mapboxToken?: string\n  itineraryModuleConfiguration?: ItineraryModuleConfigurationFieldsFragment\n  nextDeparturesModuleConfiguration?: NextDeparturesModuleConfigurationFieldsFragment\n  transportTitleSearchData?: TransportTitleListFieldsFragment[]\n  transportTitleSearchModuleConfiguration?: TransportTitleSearchModuleConfigFieldsFragment\n  allNewsData?: NewsListFieldsFragment[]\n  allNewsModuleConfiguration?: AllNewsModuleConfigurationFieldsFragment\n  infoTrafficData?: InfoTrafficFieldsFragment[]\n  customFormsConfiguration?: CustomFormsConfigurationFieldsFragment\n  formCaptchaKey?: string\n  menuData?: HeaderMenuFieldsFragment & FooterMenuFieldsFragment\n  lostObjectsFormLines?: LostObjectsFormLineFieldsFragment[]\n  lostObjectsFormConfiguration?: LostObjectsFormConfigurationFieldsFragment\n  smsAlertFormConfiguration?: SmsAlertInfoTrafficFormConfigurationFieldsFragment\n  lePiloteInfoTrafficLinesIconsData?: LePiloteInfoTrafficLinesIconsFieldsFragment[]\n}\n\nconst sanitizeHtmlWithImages = content =>\n  sanitizeHtml(content, {\n    allowedTags: sanitizeHtml.defaults.allowedTags.concat([\"img\"]).concat([\"p\"]),\n    allowedAttributes: {\n      ...sanitizeHtml.defaults.allowedAttributes,\n      img: (sanitizeHtml.defaults.allowedAttributes.img || []).concat([\"src\", \"alt\", \"width\", \"height\", \"title\"]),\n      p: (sanitizeHtml.defaults.allowedAttributes.p || []).concat([\"style\"]),\n      table: (sanitizeHtml.defaults.allowedAttributes.table || []).concat([\"style\", \"border\"]),\n      tbody: (sanitizeHtml.defaults.allowedAttributes.tbody || []).concat([\"style\", \"width\", \"height\"]),\n      tr: (sanitizeHtml.defaults.allowedAttributes.tr || []).concat([\"style\", \"width\", \"height\"]),\n      td: (sanitizeHtml.defaults.allowedAttributes.td || []).concat([\"style\", \"width\", \"height\"]),\n      span: (sanitizeHtml.defaults.allowedAttributes.span || []).concat([\"style\", \"width\", \"height\"]),\n      li: (sanitizeHtml.defaults.allowedAttributes.li || []).concat([\"style\"]),\n      ul: (sanitizeHtml.defaults.allowedAttributes.ul || []).concat([\"style\"]),\n      ol: (sanitizeHtml.defaults.allowedAttributes.ol || []).concat([\"style\"]),\n      blockquote: (sanitizeHtml.defaults.allowedAttributes.blockquote || []).concat([\"style\"]),\n      div: (sanitizeHtml.defaults.allowedAttributes.div || []).concat([\"style\"]),\n      a: (sanitizeHtml.defaults.allowedAttributes.a || []).concat([\"href\"]),\n    },\n    allowedSchemesByTag: {\n      ...sanitizeHtml.defaults.allowedSchemesByTag,\n      a: [\"http\", \"https\", \"javascript\"],\n    },\n    exclusiveFilter: frame =>\n      frame.tag === \"a\" &&\n      frame.attribs.href &&\n      frame.attribs.href.startsWith(\"javascript\") &&\n      !frame.attribs.href.startsWith(\"javascript:Didomi\"),\n  })\n\nconst customTextRenderOptions = {\n  renderInlineRecord({ record, adapter: { renderNode } }) {\n    switch (record.__typename) {\n      case \"DatoCmsDocument\":\n        return renderNode(\n          \"a\",\n          { href: record.document.url },\n          sanitizeHtml(record.title, {\n            allowedTags: [],\n            allowedAttributes: {},\n          })\n        )\n      case \"DatoCmsHome\":\n        return renderNode(\n          \"a\",\n          { href: \"/\" },\n          sanitizeHtml(record.title, {\n            allowedTags: [],\n            allowedAttributes: {},\n          })\n        )\n      default:\n        return renderNode(\n          \"a\",\n          { href: `/${record.slug}` },\n          sanitizeHtml(record.title, {\n            allowedTags: [],\n            allowedAttributes: {},\n          })\n        )\n    }\n  },\n  renderLinkToRecord({ record, children, adapter: { renderNode } }) {\n    switch (record.__typename) {\n      case \"DatoCmsHome\":\n        return renderNode(\"a\", { href: `/` }, record.title)\n      case \"DatoCmsPage\":\n        return renderNode(\"a\", { href: `/${record.slug}` }, children)\n      case \"DatoCmsDocument\":\n        return renderNode(\"a\", { href: record.document.url }, children)\n      default:\n        return null\n    }\n  },\n}\n\nconst RichDatoCmsContent: React.FC<RenderProps> = ({\n  data,\n  pageTitle,\n  schedulesSearchData,\n  schedulesSearchModuleConfiguration,\n  ticketOfficeSearchData,\n  ticketOfficeSearchModuleConfiguration,\n  mapboxToken,\n  itineraryModuleConfiguration,\n  nextDeparturesModuleConfiguration,\n  transportTitleSearchData,\n  transportTitleSearchModuleConfiguration,\n  allNewsData,\n  allNewsModuleConfiguration,\n  infoTrafficData,\n  customFormsConfiguration,\n  formCaptchaKey,\n  menuData,\n  lostObjectsFormLines,\n  lostObjectsFormConfiguration,\n  smsAlertFormConfiguration,\n  lePiloteInfoTrafficLinesIconsData,\n}) => {\n  useEffect(() => {\n    if (window) {\n      let elements = document.getElementsByTagName(\"a\")\n      let fileExtensionRegexp = new RegExp(\n        /^.+\\.((pdf)|(jpg)|(jpeg)|(odt)|(xlsx)|(pptx)|(docx)|(xls)|(ppt)|(txt)|(mov)|(wmv)|(m4v)|(flv)|(mp4))$/ /* /[^\\.]+$/ */,\n        \"g\"\n      )\n\n      for (var i = 0, len = elements.length; i < len; i++) {\n        let file = fileExtensionRegexp.test(elements[i].href)\n        if (file) {\n          elements[i].target = \"_blank\"\n          let extension = elements[i].href.split(\".\").pop()\n          let titlePath = elements[i].href.split(\".\")\n          let title = titlePath[titlePath.length - 2].split(\"/\").pop()\n          elements[i].onclick = function () {\n            pushGtmEvent(\"eventga\", \"Download\", \"Download-\" + extension.toUpperCase(), title)\n          }\n        }\n      }\n    }\n  }, [])\n\n  return (\n    <div className={\"container \" + styles.richContent}>\n      {data.map(content => {\n        if (isSimpleText(content)) {\n          return (\n            <div\n              key={content.id}\n              dangerouslySetInnerHTML={{\n                __html: sanitizeHtmlWithImages(content.content).replace(new RegExp(\"<p></p>\", \"g\"), \"<br>\"),\n              }}\n            />\n          )\n        } else if (isCustomText(content)) {\n          return (\n            <div\n              key={content.id}\n              dangerouslySetInnerHTML={{\n                __html: sanitizeHtmlWithImages(render(content.customContent, customTextRenderOptions)),\n              }}\n            />\n          )\n        } else if (isTextWithImage(content)) {\n          return (\n            <div className={styles.textWithImage} key={content.id}>\n              <img\n                className={styles.image + (content.imagePosition === \"Right\" ? \" \" + styles.imageOnRight : \"\")}\n                src={content.image.url}\n                alt={content.image.alt}\n              />\n              <div\n                className={styles.content}\n                dangerouslySetInnerHTML={{\n                  __html: sanitizeHtmlWithImages(content.text),\n                }}\n              />\n            </div>\n          )\n        } else if (isTextWithVideo(content)) {\n          return (\n            <div\n              key={content.id}\n              className={styles.textWithVideo + (content.videoPosition === \"Right\" ? \" \" + styles.videoOnRight : \"\")}\n            >\n              {displayVideo(content.video)}\n              <div\n                className={styles.content}\n                dangerouslySetInnerHTML={{\n                  __html: sanitizeHtmlWithImages(content.content),\n                }}\n              />\n            </div>\n          )\n        } else if (isHighlight(content)) {\n          return (\n            <a\n              key={content.id}\n              className={styles.highlight}\n              href={content.link}\n              dangerouslySetInnerHTML={{\n                __html: sanitizeHtmlWithImages(content.content),\n              }}\n            />\n          )\n        } else if (isVideoOnly(content)) {\n          return (\n            <div className={styles.videoOnly} key={content.id}>\n              {displayVideo(content.video)}\n            </div>\n          )\n        } else if (isEmbeddedIframe(content)) {\n          return (\n            <iframe\n              key={content.id}\n              className={styles.embeddedIframe}\n              title={content.iframe.name}\n              src={content.iframe.url}\n              style={parseStyles(content.iframe.style)}\n              sandbox=\"allow-forms allow-popups allow-pointer-lock allow-same-origin allow-scripts allow-downloads\"\n            />\n          )\n        } else if (isSchedulesSearch(content)) {\n          return (\n            <SchedulesSearch\n              key={content.id}\n              lines={schedulesSearchData}\n              moduleConfiguration={schedulesSearchModuleConfiguration}\n              label={content.label}\n            />\n          )\n        } else if (isTransportTitleSearchModule(content)) {\n          return (\n            <TransportTitleSearch\n              key={content.id}\n              label={content.label}\n              transportTitleSearchData={transportTitleSearchData}\n              transportTitleSearchModuleConfig={transportTitleSearchModuleConfiguration}\n            />\n          )\n        } else if (isAllNewsModule(content)) {\n          return <AllNews key={content.id} title={pageTitle} news={allNewsData} config={allNewsModuleConfiguration} />\n        } else if (isTicketOfficeSearch(content)) {\n          return (\n            <TicketOfficeSearch\n              key={content.id}\n              ticketOffices={ticketOfficeSearchData}\n              moduleConfiguration={ticketOfficeSearchModuleConfiguration}\n              mapboxToken={mapboxToken}\n              label={content.label}\n            />\n          )\n        } else if (isItineraryModule(content)) {\n          return (\n            <ItineraryModule\n              key={content.id}\n              moduleConfiguration={itineraryModuleConfiguration}\n              label={content.label}\n            />\n          )\n        } else if (isNextDeparturesModule(content)) {\n          return (\n            <NextDeparturesModule\n              key={content.id}\n              moduleConfiguration={nextDeparturesModuleConfiguration}\n              label={content.label}\n            />\n          )\n        } else if (isInfoTrafficModule(content)) {\n          return <InfoTraffic infoTrafficData={infoTrafficData} key={content.id}></InfoTraffic>\n        } else if (isCustomForm(content)) {\n          return (\n            <CustomForm\n              key={content.id}\n              data={content.form}\n              configuration={customFormsConfiguration}\n              formCaptchaKey={formCaptchaKey}\n            />\n          )\n        } else if (isWebsiteMapModule(content)) {\n          return <WebsiteMap menuData={menuData} />\n        } else if (isLostObjectsFormModule(content)) {\n          return (\n            <LostObjectsForm\n              title={content.title}\n              lines={lostObjectsFormLines}\n              moduleConfiguration={lostObjectsFormConfiguration}\n              formsConfiguration={customFormsConfiguration}\n            />\n          )\n        } else if (isSmsAlertInfoTrafficFormModule(content)) {\n          return (\n            <SmsAlertInfoTrafficForms\n              title={content.title}\n              moduleConfiguration={smsAlertFormConfiguration}\n              formsConfiguration={customFormsConfiguration}\n            />\n          )\n        } else if (isLePiloteInfoTrafficModule(content)) {\n          return (\n            <InfoTrafficLePilote\n              linesIconsData={lePiloteInfoTrafficLinesIconsData}\n              key={content.id}\n            ></InfoTrafficLePilote>\n          )\n        } else if (isTitleBlock(content)) {\n          return <TitlePage titleData={content} key={content.id}></TitlePage>\n        } else if (isLePiloteNextTripsSearchModule(content)) {\n          return (\n            <LePiloteNextTripsSearch\n              moduleData={content}\n              key={content.id}\n              linesIconsData={lePiloteInfoTrafficLinesIconsData}\n            ></LePiloteNextTripsSearch>\n          )\n        } else if (isLePiloteItineraryModule(content)) {\n          return (\n            <LePiloteItinerary\n              mapboxToken={mapboxToken}\n              data={content}\n              linesIconsData={lePiloteInfoTrafficLinesIconsData}\n            ></LePiloteItinerary>\n          )\n        } else if (isAroundMeActigraphModule(content)) {\n          return <AroundMeActigraph data={content} key={content.id}></AroundMeActigraph>\n        } else if (isOskarPaymentModule(content)) {\n          return <OskarPayment data={content} key={content.id}></OskarPayment>\n        } else if (isInfoTrafficDetailModule(content)) {\n          return <InfoTrafficDetailModule key={content.id}></InfoTrafficDetailModule>\n        } else if (isTerDakarItinerarySearchModule(content)) {\n          return <TerDakarItinerarySearchModule key={content.id} data={content}></TerDakarItinerarySearchModule>\n        } else if (isButton(content)) {\n          return <Button key={content.id} data={content}></Button>\n        } else if (isVianavigoItineraryModule(content)) {\n          return <VianavigoItinerary key={content.id} data={content}></VianavigoItinerary>\n        }\n      })}\n    </div>\n  )\n}\n\nexport default RichDatoCmsContent\n\nfunction displayVideo(video) {\n  if (video.provider === \"youtube\") {\n    return (\n      <iframe\n        className={styles.video}\n        src={\"https://www.youtube.com/embed/\" + video.providerUid}\n        frameBorder=\"0\"\n        allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n        allowFullScreen\n      />\n    )\n  } else if (video.provider === \"vimeo\") {\n    return (\n      <iframe\n        src={\"https://player.vimeo.com/video/\" + video.providerUid}\n        className={styles.video}\n        frameBorder=\"0\"\n        allow=\"autoplay; fullscreen; picture-in-picture\"\n        allowFullScreen\n      />\n    )\n  }\n}\n\nfunction parseStyles(stylesToParse: string): { [property: string]: string } {\n  return stylesToParse.split(\";\").reduce((parsedStyles, style) => {\n    const splitted = style.split(\":\")\n    if (splitted[0] && splitted[1]) {\n      return { ...parsedStyles, [splitted[0].trim()]: splitted[1].trim() }\n    } else {\n      return parsedStyles\n    }\n  }, {})\n}\n\nfunction isSimpleText(content: RichDatoCmsContentUnion): content is SimpleTextFieldsFragment {\n  return content.__typename === \"DatoCmsSimpleText\" || content.__typename === \"SimpleTextRecord\"\n}\n\nfunction isCustomText(content: RichDatoCmsContentUnion): content is CustomTextFieldsFragment {\n  return content.__typename === \"DatoCmsCustomText\" || content.__typename === \"CustomTextRecord\"\n}\n\nfunction isTextWithImage(content: RichDatoCmsContentUnion): content is TextWithImageFieldsFragment {\n  return content.__typename === \"DatoCmsTextWithImage\" || content.__typename === \"TextWithImageRecord\"\n}\n\nfunction isTextWithVideo(content: RichDatoCmsContentUnion): content is TextWithVideoFieldsFragment {\n  return content.__typename === \"DatoCmsTextWithVideo\" || content.__typename === \"TextWithVideoRecord\"\n}\n\nfunction isHighlight(content: RichDatoCmsContentUnion): content is HighlightFieldsFragment {\n  return content.__typename === \"DatoCmsHighlight\"\n}\n\nfunction isVideoOnly(content: RichDatoCmsContentUnion): content is VideoOnlyFieldsFragment {\n  return content.__typename === \"DatoCmsVideoOnly\"\n}\n\nfunction isEmbeddedIframe(content: RichDatoCmsContentUnion): content is EmbeddedIframeFieldsFragment {\n  return content.__typename === \"DatoCmsEmbeddedIframe\"\n}\n\nfunction isTransportTitleSearchModule(content: RichDatoCmsContentUnion): content is TransportTitleSearchFieldsFragment {\n  return content.__typename === \"DatoCmsTransportTitleSearchModule\"\n}\n\nfunction isSchedulesSearch(content: RichDatoCmsContentUnion): content is SchedulesSearchFieldsFragment {\n  return content.__typename === \"DatoCmsSchedulesSearch\"\n}\n\nfunction isTicketOfficeSearch(content: RichDatoCmsContentUnion): content is TicketOfficeSearchModuleFieldsFragment {\n  return content.__typename === \"DatoCmsTicketOfficeSearchModule\"\n}\n\nfunction isItineraryModule(content: RichDatoCmsContentUnion): content is ItineraryModuleFieldsFragment {\n  return content.__typename === \"DatoCmsItineraryModule\"\n}\n\nfunction isNextDeparturesModule(content: RichDatoCmsContentUnion): content is NextDeparturesModuleFieldsFragment {\n  return content.__typename === \"DatoCmsNextDeparturesModule\"\n}\n\nfunction isAllNewsModule(content: RichDatoCmsContentUnion): content is AllNewsFieldsFragment {\n  return content.__typename === \"DatoCmsAllNews\"\n}\n\nfunction isInfoTrafficModule(content: RichDatoCmsContentUnion): content is InfoTrafficModuleFieldsFragment {\n  return content.__typename === \"DatoCmsInfoTrafficModule\"\n}\n\nfunction isCustomForm(content: RichDatoCmsContentUnion): content is CustomFormModuleFieldsFragment {\n  return content.__typename === \"DatoCmsCustomFormModule\"\n}\n\nfunction isWebsiteMapModule(content: RichDatoCmsContentUnion): content is WebsiteMapModuleFieldsFragment {\n  return content.__typename === \"DatoCmsWebsiteMapModule\"\n}\n\nfunction isLostObjectsFormModule(content: RichDatoCmsContentUnion): content is LostObjectsFormFieldsFragment {\n  return content.__typename === \"DatoCmsLostObjectsForm\"\n}\n\nfunction isSmsAlertInfoTrafficFormModule(content: RichDatoCmsContentUnion): content is SmsAlertFormFieldsFragment {\n  return content.__typename === \"DatoCmsSmsAlertForm\"\n}\n\nfunction isLePiloteInfoTrafficModule(\n  content: RichDatoCmsContentUnion\n): content is LePiloteInfoTrafficModuleFieldsFragment {\n  return content.__typename === \"DatoCmsLePiloteInfoTrafficModule\"\n}\n\nfunction isTitleBlock(content: RichDatoCmsContentUnion): content is TitleBlockFieldsFragment {\n  return content.__typename === \"DatoCmsTitleBlock\"\n}\n\nfunction isLePiloteNextTripsSearchModule(\n  content: RichDatoCmsContentUnion\n): content is LePiloteNextTripsSearchModuleFieldsFragment {\n  return content.__typename === \"DatoCmsLePiloteNextTripsSearchModule\"\n}\n\nfunction isLePiloteItineraryModule(content: RichDatoCmsContentUnion): content is LePiloteItineraryModuleFieldsFragment {\n  return content.__typename === \"DatoCmsLePiloteItineraryModule\"\n}\n\nfunction isAroundMeActigraphModule(content: RichDatoCmsContentUnion): content is AroundMeActigraphModuleFieldsFragment {\n  return content.__typename === \"DatoCmsAroundMeActigraphModule\"\n}\n\nfunction isOskarPaymentModule(content: RichDatoCmsContentUnion): content is OskarPaymentModuleFieldsFragment {\n  return content.__typename === \"DatoCmsOskarPaymentModule\"\n}\n\nfunction isInfoTrafficDetailModule(content: RichDatoCmsContentUnion): content is InfoTrafficDetailModuleFieldsFragment {\n  return content.__typename === \"DatoCmsInfoTrafficDetailModule\"\n}\n\nfunction isTerDakarItinerarySearchModule(\n  content: RichDatoCmsContentUnion\n): content is TerDakarItinerarySearchModuleFieldsFragment {\n  return content.__typename === \"DatoCmsTerDakarItinerarySearchModule\"\n}\n\nfunction isButton(content: RichDatoCmsContentUnion): content is ButtonFieldsFragment {\n  return content.__typename === \"DatoCmsButton\"\n}\n\nfunction isVianavigoItineraryModule(\n  content: RichDatoCmsContentUnion\n): content is VianavigoItineraryModuleFieldsFragment {\n  return content.__typename === \"DatoCmsVianavigoItineraryModule\"\n}\n\nexport const fragments = graphql`\n  fragment SimpleTextFields on DatoCmsSimpleText {\n    __typename\n    id\n    content\n  }\n\n  fragment CustomTextFields on DatoCmsCustomText {\n    __typename\n    id\n    customContent {\n      blocks\n      links {\n        __typename\n        ... on DatoCmsPage {\n          id: originalId\n          slug\n          title\n        }\n        ... on DatoCmsHome {\n          id: originalId\n          title\n        }\n        ... on DatoCmsDocument {\n          id: originalId\n          title\n          document {\n            id\n            url\n            alt\n            title\n          }\n        }\n      }\n      value\n    }\n  }\n\n  fragment TextWithImageFields on DatoCmsTextWithImage {\n    __typename\n    id\n    text\n    imagePosition\n    image {\n      alt\n      format\n      url\n    }\n  }\n\n  fragment TextWithVideoFields on DatoCmsTextWithVideo {\n    __typename\n    id\n    content\n    videoPosition\n    video {\n      provider\n      providerUid\n    }\n  }\n\n  fragment HighlightFields on DatoCmsHighlight {\n    __typename\n    id\n    link\n    content\n  }\n\n  fragment VideoOnlyFields on DatoCmsVideoOnly {\n    __typename\n    id\n    video {\n      providerUid\n      provider\n      width\n      height\n    }\n  }\n\n  fragment EmbeddedIframeFields on DatoCmsEmbeddedIframe {\n    __typename\n    id\n    iframe {\n      name\n      url\n      style\n    }\n  }\n\n  fragment SchedulesSearchFields on DatoCmsSchedulesSearch {\n    __typename\n    id\n    label\n  }\n\n  fragment TicketOfficeSearchModuleFields on DatoCmsTicketOfficeSearchModule {\n    __typename\n    id\n    label\n  }\n\n  fragment ItineraryModuleFields on DatoCmsItineraryModule {\n    __typename\n    id\n    label\n  }\n\n  fragment NextDeparturesModuleFields on DatoCmsNextDeparturesModule {\n    __typename\n    id\n    label\n  }\n\n  fragment InfoTrafficModuleFields on DatoCmsInfoTrafficModule {\n    __typename\n    id\n    label\n  }\n\n  fragment TransportTitleSearchFields on DatoCmsTransportTitleSearchModule {\n    __typename\n    id\n    label\n  }\n\n  fragment AllNewsFields on DatoCmsAllNews {\n    __typename\n    id\n  }\n\n  fragment CustomFormModuleFields on DatoCmsCustomFormModule {\n    __typename\n    id\n    form {\n      ...CustomFormFields\n    }\n  }\n\n  fragment WebsiteMapModuleFields on DatoCmsWebsiteMapModule {\n    __typename\n    id\n  }\n\n  fragment LostObjectsFormFields on DatoCmsLostObjectsForm {\n    __typename\n    id\n    title\n  }\n\n  fragment SmsAlertFormFields on DatoCmsSmsAlertForm {\n    __typename\n    id\n    title\n  }\n\n  fragment LePiloteInfoTrafficModuleFields on DatoCmsLePiloteInfoTrafficModule {\n    __typename\n    id\n    label\n  }\n\n  fragment TitleBlockFields on DatoCmsTitleBlock {\n    __typename\n    id\n    titleBlockLink {\n      title\n      id\n      externalLink\n      internalLink {\n        ... on DatoCmsHome {\n          __typename\n          id\n          model {\n            apiKey\n          }\n        }\n        ... on DatoCmsPage {\n          __typename\n          id\n          slug\n        }\n      }\n      textOrImage\n      linkText\n      linkImage {\n        alt\n        format\n        url\n      }\n    }\n  }\n\n  fragment LePiloteNextTripsSearchModuleFields on DatoCmsLePiloteNextTripsSearchModule {\n    __typename\n    id\n    title\n    trippointFieldLabel\n    trippointFieldPlaceholder\n    searchButtonLabel\n    errorMessage\n    arrivingMessage\n  }\n\n  fragment AroundMeActigraphModuleFields on DatoCmsAroundMeActigraphModule {\n    __typename\n    id\n    src\n  }\n\n  fragment LePiloteItineraryModuleFields on DatoCmsLePiloteItineraryModule {\n    __typename\n    id\n    title\n    departureLabel\n    departurePlaceholder\n    arrivalLabel\n    arrivalPlaceholder\n    micDepartureAltText\n    micArrivalAltText\n    microphonePictogram {\n      url\n    }\n    geolocationIcon {\n      url\n      alt\n    }\n    geolocationLabel\n    swapDepartureArrivalIcon {\n      url\n      alt\n    }\n    dateLabel\n    dateDepartureTypeLabel\n    dateArrivalTypeLabel\n    calendarIcon {\n      url\n      alt\n    }\n    clockIcon {\n      url\n      alt\n    }\n    walkIndicationLabel\n    preposition\n    searchButtonLabel\n    fastestItinerary\n    shortestItinerary\n    mostDirectItinerary\n    directionLabel\n    lineIndicationLabel\n    durationIndicationLabel\n    minuteLabel\n    destinationIndicationLabel\n    positionErrorMessage\n    tripAvailabilityErrorMessage\n    walkSegmentIcon {\n      url\n      alt\n    }\n    itineraryDetailsButtonIcon {\n      url\n      alt\n    }\n    mapDepartureMarker {\n      url\n      alt\n    }\n    mapArrivalMarker {\n      url\n      alt\n    }\n  }\n\n  fragment OskarPaymentModuleFields on DatoCmsOskarPaymentModule {\n    __typename\n    id\n    moduleTag\n  }\n\n  fragment InfoTrafficDetailModuleFields on DatoCmsInfoTrafficDetailModule {\n    __typename\n    id\n  }\n\n  fragment TerDakarItinerarySearchModuleFields on DatoCmsTerDakarItinerarySearchModule {\n    __typename\n    id\n    title\n    token\n  }\n\n  fragment ButtonFields on DatoCmsButton {\n    __typename\n    id\n    title\n    isButtonImg\n    imgContent {\n      alt\n      format\n      url\n    }\n    pictogram {\n      alt\n      format\n      url\n    }\n    color {\n      hex\n    }\n    hoverColor {\n      hex\n    }\n    internalPageLink {\n      ... on DatoCmsHome {\n        __typename\n      }\n      ... on DatoCmsPage {\n        __typename\n        slug\n      }\n    }\n    externalPageLink\n  }\n\n  fragment VianavigoItineraryModuleFields on DatoCmsVianavigoItineraryModule {\n    __typename\n    id\n    token\n    configurationId\n  }\n`\n","// extracted by mini-css-extract-plugin\nexport var accessNav = \"breadcrumb-module--accessNav--41505\";\nexport var breadcrumb = \"breadcrumb-module--breadcrumb--7adcb\";\nexport var breadcrumbList = \"breadcrumb-module--breadcrumbList--521ca\";\nexport var chevron = \"breadcrumb-module--chevron--7e84b\";\nexport var chevronBox = \"breadcrumb-module--chevronBox--e7a3f\";\nexport var label = \"breadcrumb-module--label--1d4cb\";\nexport var labelNoLink = \"breadcrumb-module--labelNoLink--3fd70\";\nexport var pageChildPath = \"breadcrumb-module--pageChildPath--3c1d5\";\nexport var selectedLabel = \"breadcrumb-module--selectedLabel--990b3\";","import React, { useEffect } from \"react\"\nimport * as styles from \"./breadcrumb.module.scss\"\nimport { HeaderMenuFieldsFragment } from \"../../../../graphql-types\"\nimport sanitizeHtml from \"sanitize-html\"\nimport Chevron from \"../../layout/header/side-menu/accordion/chevron\"\n\ntype RenderProps = {\n  menuData: HeaderMenuFieldsFragment\n  pageTitle: string\n  pageSlug?: string\n  locale: string\n  defaultLocale: string\n}\n\nexport let pageInfo: {\n  parent: string\n  selected: string\n  parentSlug: string\n} = { parent: null, selected: null, parentSlug: null }\n\nconst Breadcrumb: React.FC<RenderProps> = ({ menuData, pageTitle, pageSlug, locale, defaultLocale }) => {\n  const sanitizedTitle = sanitizeHtml(pageTitle)\n  const homeLabel = \"Accueil\"\n\n  const pages: {\n    parent: string\n    selected: string\n    parentSlug: string\n  } = { parent: null, selected: null, parentSlug: null }\n\n  const searchInSubMenu = () => {\n    menuData.column1.forEach(subMenu => {\n      if (subMenu.page && pageSlug === subMenu.page.slug) {\n        pages.parent = menuData.label\n        pages.parentSlug = menuData.page ? menuData.page.slug : menuData.externalPage\n        pages.selected = subMenu.label\n      }\n    })\n    menuData.column2.forEach(subMenu => {\n      if (subMenu.page && pageSlug === subMenu.page.slug) {\n        pages.parent = menuData.label2\n        pages.parentSlug = menuData.page2 ? menuData.page2.slug : menuData.externalPage2\n        pages.selected = subMenu.label\n      }\n    })\n    menuData.column3.forEach(subMenu => {\n      if (subMenu.page && pageSlug === subMenu.page.slug) {\n        pages.parent = menuData.label3\n        pages.parentSlug = menuData.page3 ? menuData.page3.slug : menuData.externalPage3\n        pages.selected = subMenu.label\n      }\n    })\n    menuData.column4.forEach(subMenu => {\n      if (subMenu.page && pageSlug === subMenu.page.slug) {\n        pages.parent = menuData.label4\n        pages.parentSlug = menuData.page4 ? menuData.page4.slug : menuData.externalPage4\n        pages.selected = subMenu.label\n      }\n    })\n    menuData.column5.forEach(subMenu => {\n      if (subMenu.page && pageSlug === subMenu.page.slug) {\n        pages.parent = menuData.label5\n        pages.parentSlug = menuData.page5 ? menuData.page5.slug : menuData.externalPage5\n        pages.selected = subMenu.label\n      }\n    })\n  }\n\n  switch (pageSlug) {\n    case menuData.page && menuData.page.slug:\n      pages.selected = menuData.label\n      break\n    case menuData.page2 && menuData.page2.slug:\n      pages.selected = menuData.label2\n      break\n    case menuData.page3 && menuData.page3.slug:\n      pages.selected = menuData.label3\n      break\n    case menuData.page4 && menuData.page4.slug:\n      pages.selected = menuData.label4\n      break\n    case menuData.page5 && menuData.page5.slug:\n      pages.selected = menuData.label5\n      break\n  }\n\n  if (!pages.selected) {\n    searchInSubMenu()\n  }\n\n  useEffect(() => {\n    pageInfo = pages\n  }, [])\n\n  return (\n    <nav role=\"navigation\" aria-label=\"Position dans le site\" className={styles.accessNav}>\n      <ul className={styles.breadcrumb}>\n        <li className={styles.breadcrumbList}>\n          <a href={locale === defaultLocale ? \"/\" : `/${locale}`} className={styles.label}>\n            {homeLabel}\n          </a>\n          <div className={styles.chevronBox}>\n            <Chevron aria-hidden={true} className={styles.chevron} />\n          </div>\n        </li>\n\n        {(pages.parent || pages.selected) && (\n          <li className={styles.breadcrumbList}>\n            {pages.parent ? (\n              <a\n                href={locale === defaultLocale ? `/${pages.parentSlug}` : `/${locale}/${pages.parentSlug}`}\n                className={styles.label}\n              >\n                {pages.parent}\n              </a>\n            ) : (\n              <span className={styles.selectedLabel}>{pages.selected}</span>\n            )}\n            {pages.parent && (\n              <div className={styles.chevronBox}>\n                <Chevron aria-hidden={true} className={styles.chevron} />\n              </div>\n            )}\n          </li>\n        )}\n\n        {pages.parent && (\n          <li>\n            <span className={styles.selectedLabel}>{pages.selected}</span>\n          </li>\n        )}\n\n        {!pages.parent && !pages.selected && (\n          <li>\n            <div className={styles.selectedLabel} dangerouslySetInnerHTML={{ __html: sanitizedTitle }} />\n          </li>\n        )}\n      </ul>\n    </nav>\n  )\n}\n\nexport default Breadcrumb\n","import React from \"react\"\nimport { TypePageQuery } from \"../../../../graphql-types\"\nimport * as styles from \"./news-blocks.module.scss\"\nimport { format } from \"date-fns\"\nimport * as config from \"../../../../config\"\n\ntype RenderProps = {\n  label: string\n  news: TypePageQuery[\"allDatoCmsNews\"][\"nodes\"]\n  locale: string\n  defaultLocale: string\n}\n\nconst NewsBlocks: React.FC<RenderProps> = ({ news, label, locale, defaultLocale }) => {\n  function _createNewsBlock(id: string, title: string, slug: string, publicationDate: string) {\n    return (\n      <li className={styles.newsBlock} key={id}>\n        <a href={slug}>\n          <div className={styles.newsDate}>{publicationDate}</div>\n          <div className={styles.newsTitle}>{title}</div>\n        </a>\n      </li>\n    )\n  }\n\n  return (\n    <>\n      <h2 className={styles.newsBlocksTitle}>{label}</h2>\n      <ul className={styles.newsBlocks}>\n        {news.map(newsItem => {\n          // Error displayed by date-format => RangeError: Use `yyyy` instead of `YYYY` (in `dd/MM/YYYY`) for formatting years to the input\n          const dateFormat =\n            config.date_format[config.locale] === \"dd/MM/YYYY\" ? \"dd/MM/yyyy\" : config.date_format[config.locale]\n          const publicationDate = format(new Date(newsItem.publicationDate), dateFormat)\n          const slug = locale === defaultLocale ? `/news/${newsItem.slug}` : `/${locale}/news/${newsItem.slug}`\n\n          return newsItem.title ? _createNewsBlock(newsItem.id, newsItem.title, slug, publicationDate) : null\n        })}\n      </ul>\n    </>\n  )\n}\n\nexport default NewsBlocks\n","// extracted by mini-css-extract-plugin\nexport var newsBlock = \"news-blocks-module--newsBlock--be6ae\";\nexport var newsBlocks = \"news-blocks-module--newsBlocks--b4468\";\nexport var newsBlocksTitle = \"news-blocks-module--newsBlocksTitle--73138\";\nexport var newsDate = \"news-blocks-module--newsDate--00714\";\nexport var newsTitle = \"news-blocks-module--newsTitle--eaa63\";","import React, { useEffect, useState } from \"react\"\nimport * as styles from \"./share-buttons.module.scss\"\nimport facebookLogo from \"../../../../static/images/facebook_logo.png\"\nimport twitterLogo from \"../../../../static/images/twitter_logo.png\"\n\ntype RenderProps = {\n  facebookDisplay: boolean\n  twitterDisplay: boolean\n}\n\nconst ShareButtons: React.FC<RenderProps> = ({ facebookDisplay, twitterDisplay }) => {\n  const [facebookUrl, setFacebookUrl] = useState(\"\")\n  const [twitterUrl, setTwitterUrl] = useState(\"\")\n\n  useEffect(() => {\n    setFacebookUrl(`https://www.facebook.com/sharer/sharer.php?u=${window.location.href}`)\n    setTwitterUrl(`https://twitter.com/intent/tweet?url=${window.location.href}`)\n  }, [])\n\n  return facebookDisplay || twitterDisplay ? (\n    <div className={styles.shareButtons}>\n      {facebookDisplay && (\n        <a href={facebookUrl} target=\"_blank\" className={styles.facebook}>\n          <img src={facebookLogo} alt=\"Facebook logo\" />\n          Partager\n        </a>\n      )}\n      {twitterDisplay && (\n        <a href={twitterUrl} target=\"_blank\" className={styles.twitter}>\n          <img src={twitterLogo} alt=\"Twitter logo\" />\n          Tweet\n        </a>\n      )}\n    </div>\n  ) : null\n}\n\nexport default ShareButtons\n","// extracted by mini-css-extract-plugin\nexport var facebook = \"share-buttons-module--facebook--925a4\";\nexport var shareButtons = \"share-buttons-module--shareButtons--36e22\";\nexport var twitter = \"share-buttons-module--twitter--27f2f\";","// extracted by mini-css-extract-plugin\nexport var sideBlock = \"side-blocks-module--sideBlock--5ca19\";\nexport var sideBlocks = \"side-blocks-module--sideBlocks--ac68a\";","import React from \"react\"\nimport * as styles from \"./side-block.module.scss\"\nimport { ReactSVG } from \"react-svg\"\n\ntype RenderProps = {\n  image: string\n  title: string\n  link: string\n  isInternal: boolean\n}\n\nconst SideBlock: React.FC<RenderProps> = ({ image, title, link, isInternal }) => {\n  return (\n    <a className={styles.secondaryBlock} href={link} target={isInternal ? \"_self\" : \"_blank\"}>\n      <ReactSVG\n        src={image}\n        className={styles.svgImage}\n        beforeInjection={svg => svg.setAttribute(\"aria-hidden\", \"true\")}\n      />\n      <span className={styles.link}>{title}</span>\n    </a>\n  )\n}\n\nexport default SideBlock\n","// extracted by mini-css-extract-plugin\nexport var focus = \"side-block-module--focus--0530b\";\nexport var hover = \"side-block-module--hover--ef96f\";\nexport var image = \"side-block-module--image--ec727\";\nexport var important = \"side-block-module--important--361ec\";\nexport var link = \"side-block-module--link--89e88\";\nexport var secondaryBlock = \"side-block-module--secondaryBlock--cc188\";\nexport var svgImage = \"side-block-module--svgImage--13e4f\";","import React, { Fragment } from \"react\"\nimport { graphql } from \"gatsby\"\nimport { SideBlockFieldsFragment } from \"../../../../graphql-types\"\nimport * as styles from \"./side-blocks.module.scss\"\nimport SideBlock from \"./side-block/side-block\"\nimport { useInternalExternalLink } from \"../../../hooks\"\n\ntype RenderProps = {\n  blocks: SideBlockFieldsFragment[]\n  locale: string\n  defaultLocale: string\n}\n\nconst SideBlocks: React.FC<RenderProps> = ({ blocks, locale, defaultLocale }) => {\n  return (\n    <ul className={styles.sideBlocks} aria-label={\"sideBlocks\"}>\n      {blocks.map((b, index) => {\n        const sideLink = b.sideBlockInternalExternalLink[0]\n        const sideLinkBis = b.sideBlockInternalExternalLinkBis[0]\n        const link = useInternalExternalLink(sideLink, locale, defaultLocale)\n        const linkBis = useInternalExternalLink(sideLinkBis, locale, defaultLocale)\n\n        return (\n          <Fragment key={index}>\n            <li className={styles.sideBlock}>\n              <SideBlock\n                image={b.sideBlockImage.url}\n                title={b.sideBlockTitle}\n                link={link}\n                isInternal={sideLink.isInternalPage}\n              />\n            </li>\n            <li className={styles.sideBlock}>\n              <SideBlock\n                image={b.sideBlockImageBis.url}\n                title={b.sideBlockTitleBis}\n                link={linkBis}\n                isInternal={sideLinkBis.isInternalPage}\n              />\n            </li>\n          </Fragment>\n        )\n      })}\n    </ul>\n  )\n}\n\nexport const fragment = graphql`\n  fragment SideBlockFields on DatoCmsSideBlock {\n    sideBlockTitle\n    sideBlockImage {\n      url\n    }\n    sideBlockInternalExternalLink {\n      ...InternalExternalLinkFields\n    }\n    sideBlockTitleBis\n    sideBlockImageBis {\n      url\n    }\n    sideBlockInternalExternalLinkBis {\n      ...InternalExternalLinkFields\n    }\n  }\n`\n\nexport default SideBlocks\n","import React from \"react\"\nimport * as styles from \"./title-banner.module.scss\"\nimport sanitizeHtml from \"sanitize-html\"\n\ntype RenderProps = {\n  title: string\n}\n\nconst TitleBanner: React.FC<RenderProps> = ({ title }) => {\n  title = title.replace(\"<p>\", \"<span>\").replace(\"</p>\", \"</span>\")\n  const sanitizedTitle = sanitizeHtml(title)\n\n  return (\n    <div className={styles.titleBannerBox}>\n      <h1 className={styles.titleBanner} dangerouslySetInnerHTML={{ __html: sanitizedTitle }}></h1>\n    </div>\n  )\n}\n\nexport default TitleBanner\n","// extracted by mini-css-extract-plugin\nexport var titleBanner = \"title-banner-module--titleBanner--bc752\";\nexport var titleBannerBox = \"title-banner-module--titleBannerBox--25311\";","import { useEffect, useState } from \"react\"\nimport { pushGtmPageEvent } from \"../gtm/interaction-event\"\n\nconst pageViewEvent = (locale: string, urlOriginal: string, menuData: any, title: string) => {\n  const [pageView, setPageView] = useState(false)\n\n  useEffect(() => {\n    if (pageView || !window) {\n      return\n    }\n    let host = \"\"\n    if (window.location) {\n      host = window.location.host\n    }\n    let pages = menuData?.pageInfo\n    const isMobile = window.matchMedia(\"only screen and (max-width: 760px)\").matches\n    const searchPattern = new RegExp(\"^\" + \"qksa\")\n    const isQualificationStage = searchPattern.test(host)\n    let validPath = pages.parent && pages.parentSlug && pages.selected\n    pushGtmPageEvent(\n      \"pageview\",\n      locale,\n      urlOriginal,\n      isMobile ? \"mobile\" : \"desktop\",\n      isQualificationStage ? \"qualifcation\" : \"production\",\n      title,\n      window.location.hostname,\n      null,\n      validPath ? pages.parent : pages?.selected || window.location.pathname.split(\"/\")[1],\n      validPath ? pages.parentSlug + \"/\" + pages.selected.split(\" \").join(\"-\").toLowerCase() + \"/\" : \"\"\n    )\n    setPageView(true)\n  })\n}\n\nexport default pageViewEvent\n","// extracted by mini-css-extract-plugin\nexport var content = \"type-page-module--content--1262c\";\nexport var rightSidebar = \"type-page-module--rightSidebar--3d19b\";\nexport var typePage = \"type-page-module--typePage--118b4\";\nexport var typePageContent = \"type-page-module--typePageContent--bcab9\";","export default function Worker_fn() {\n  return new Worker(__webpack_public_path__ + \"mapbox-gl-csp-worker-07965b0409f2c4264bd5.worker.js\");\n}\n","var arrayWithHoles = require(\"./arrayWithHoles.js\");\nvar iterableToArray = require(\"./iterableToArray.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableRest = require(\"./nonIterableRest.js\");\nfunction _toArray(r) {\n  return arrayWithHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableRest();\n}\nmodule.exports = _toArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n  var called = 0;\n  var iteratorWithReturn = {\n    next: function () {\n      return { done: !!called++ };\n    },\n    'return': function () {\n      SAFE_CLOSING = true;\n    }\n  };\n  iteratorWithReturn[ITERATOR] = function () {\n    return this;\n  };\n  // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n  Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n  try {\n    if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n  } catch (error) { return false; } // workaround of old WebKit + `eval` bug\n  var ITERATION_SUPPORT = false;\n  try {\n    var object = {};\n    object[ITERATOR] = function () {\n      return {\n        next: function () {\n          return { done: ITERATION_SUPPORT = true };\n        }\n      };\n    };\n    exec(object);\n  } catch (error) { /* empty */ }\n  return ITERATION_SUPPORT;\n};\n","'use strict';\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = !IS_DENO && !IS_NODE\n  && typeof window == 'object'\n  && typeof document == 'object';\n","'use strict';\n/* global Deno -- Deno case */\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n","'use strict';\nvar global = require('../internals/global');\nvar classof = require('../internals/classof-raw');\n\nmodule.exports = classof(global.process) === 'process';\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n// eslint-disable-next-line redos/no-vulnerable -- safe\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n  var tailPos = position + matched.length;\n  var m = captures.length;\n  var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n  if (namedCaptures !== undefined) {\n    namedCaptures = toObject(namedCaptures);\n    symbols = SUBSTITUTION_SYMBOLS;\n  }\n  return replace(replacement, symbols, function (match, ch) {\n    var capture;\n    switch (charAt(ch, 0)) {\n      case '$': return '$';\n      case '&': return matched;\n      case '`': return stringSlice(str, 0, position);\n      case \"'\": return stringSlice(str, tailPos);\n      case '<':\n        capture = namedCaptures[stringSlice(ch, 1, -1)];\n        break;\n      default: // \\d\\d?\n        var n = +ch;\n        if (n === 0) return match;\n        if (n > m) {\n          var f = floor(n / 10);\n          if (f === 0) return match;\n          if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n          return match;\n        }\n        capture = captures[n - 1];\n    }\n    return capture === undefined ? '' : capture;\n  });\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n  var isRegExp;\n  return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) === 'RegExp');\n};\n","'use strict';\nmodule.exports = function (exec) {\n  try {\n    return { error: false, value: exec() };\n  } catch (error) {\n    return { error: true, value: error };\n  }\n};\n","'use strict';\nvar global = require('../internals/global');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n  var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n  var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n  // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n  // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n  // We can't detect it synchronously, so just check versions\n  if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n  // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n  if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n  // We can't use @@species feature detection in V8 since it causes\n  // deoptimization and performance degradation\n  // https://github.com/zloirock/core-js/issues/679\n  if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n    // Detect correctness of subclassing with @@species support\n    var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n    var FakePromise = function (exec) {\n      exec(function () { /* empty */ }, function () { /* empty */ });\n    };\n    var constructor = promise.constructor = {};\n    constructor[SPECIES] = FakePromise;\n    SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n    if (!SUBCLASSING) return true;\n  // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n  } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n  CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n  REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n  SUBCLASSING: SUBCLASSING\n};\n","'use strict';\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n  NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n  var flags = R.flags;\n  return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n    ? call(regExpFlags, R) : flags;\n};\n","'use strict';\nvar $ = require('../internals/export');\n\n// eslint-disable-next-line es/no-math-hypot -- required for testing\nvar $hypot = Math.hypot;\nvar abs = Math.abs;\nvar sqrt = Math.sqrt;\n\n// Chrome 77 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=9546\nvar FORCED = !!$hypot && $hypot(Infinity, NaN) !== Infinity;\n\n// `Math.hypot` method\n// https://tc39.es/ecma262/#sec-math.hypot\n$({ target: 'Math', stat: true, arity: 2, forced: FORCED }, {\n  // eslint-disable-next-line no-unused-vars -- required for `.length`\n  hypot: function hypot(value1, value2) {\n    var sum = 0;\n    var i = 0;\n    var aLen = arguments.length;\n    var larg = 0;\n    var arg, div;\n    while (i < aLen) {\n      arg = abs(arguments[i++]);\n      if (larg < arg) {\n        div = larg / arg;\n        sum = sum * div * div + 1;\n        larg = arg;\n      } else if (arg > 0) {\n        div = arg / larg;\n        sum += div * div;\n      } else sum += arg;\n    }\n    return larg === Infinity ? Infinity : larg * sqrt(sum);\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.allSettled` method\n// https://tc39.es/ecma262/#sec-promise.allsettled\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n  allSettled: function allSettled(iterable) {\n    var C = this;\n    var capability = newPromiseCapabilityModule.f(C);\n    var resolve = capability.resolve;\n    var reject = capability.reject;\n    var result = perform(function () {\n      var promiseResolve = aCallable(C.resolve);\n      var values = [];\n      var counter = 0;\n      var remaining = 1;\n      iterate(iterable, function (promise) {\n        var index = counter++;\n        var alreadyCalled = false;\n        remaining++;\n        call(promiseResolve, C, promise).then(function (value) {\n          if (alreadyCalled) return;\n          alreadyCalled = true;\n          values[index] = { status: 'fulfilled', value: value };\n          --remaining || resolve(values);\n        }, function (error) {\n          if (alreadyCalled) return;\n          alreadyCalled = true;\n          values[index] = { status: 'rejected', reason: error };\n          --remaining || resolve(values);\n        });\n      });\n      --remaining || resolve(values);\n    });\n    if (result.error) reject(result.value);\n    return capability.promise;\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar getSubstitution = require('../internals/get-substitution');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar $TypeError = TypeError;\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar max = Math.max;\n\nvar stringIndexOf = function (string, searchValue, fromIndex) {\n  if (fromIndex > string.length) return -1;\n  if (searchValue === '') return fromIndex;\n  return indexOf(string, searchValue, fromIndex);\n};\n\n// `String.prototype.replaceAll` method\n// https://tc39.es/ecma262/#sec-string.prototype.replaceall\n$({ target: 'String', proto: true }, {\n  replaceAll: function replaceAll(searchValue, replaceValue) {\n    var O = requireObjectCoercible(this);\n    var IS_REG_EXP, flags, replacer, string, searchString, functionalReplace, searchLength, advanceBy, replacement;\n    var position = 0;\n    var endOfLastMatch = 0;\n    var result = '';\n    if (!isNullOrUndefined(searchValue)) {\n      IS_REG_EXP = isRegExp(searchValue);\n      if (IS_REG_EXP) {\n        flags = toString(requireObjectCoercible(getRegExpFlags(searchValue)));\n        if (!~indexOf(flags, 'g')) throw new $TypeError('`.replaceAll` does not allow non-global regexes');\n      }\n      replacer = getMethod(searchValue, REPLACE);\n      if (replacer) {\n        return call(replacer, searchValue, O, replaceValue);\n      } else if (IS_PURE && IS_REG_EXP) {\n        return replace(toString(O), searchValue, replaceValue);\n      }\n    }\n    string = toString(O);\n    searchString = toString(searchValue);\n    functionalReplace = isCallable(replaceValue);\n    if (!functionalReplace) replaceValue = toString(replaceValue);\n    searchLength = searchString.length;\n    advanceBy = max(1, searchLength);\n    position = stringIndexOf(string, searchString, 0);\n    while (position !== -1) {\n      replacement = functionalReplace\n        ? toString(replaceValue(searchString, position, string))\n        : getSubstitution(searchString, string, position, [], undefined, replaceValue);\n      result += stringSlice(string, endOfLastMatch, position) + replacement;\n      endOfLastMatch = position + searchLength;\n      position = stringIndexOf(string, searchString, position + advanceBy);\n    }\n    if (endOfLastMatch < string.length) {\n      result += stringSlice(string, endOfLastMatch);\n    }\n    return result;\n  }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.promise.all-settled.js');\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.string.replace-all');\n"],"names":["reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","type","KNOWN_STATICS","name","length","prototype","caller","callee","arguments","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","render","Memo","defineProperty","Object","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","module","exports","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","keys","concat","targetStatics","sourceStatics","i","key","descriptor","e","b","Symbol","for","c","d","f","g","h","k","l","m","n","p","q","r","t","v","w","x","y","z","a","u","$$typeof","A","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Fragment","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","__assign","this","assign","s","hasOwnProperty","call","apply","value","named_references_1","numeric_unicode_map_1","surrogate_pairs_1","allNamedReferences","namedReferences","all","html5","replaceUsingRegExp","macroText","macroRegExp","macroReplacer","lastIndex","replaceResult","replaceMatch","exec","replaceLastIndex","index","substring","replaceInput","encodeRegExps","specialChars","nonAscii","nonAsciiPrintable","nonAsciiPrintableOnly","extensive","defaultEncodeOptions","mode","level","numeric","encode","text","_a","_b","_c","_d","_e","encodeRegExp","references","characters","isHex","input","result","code","getCodePoint","charCodeAt","toString","defaultDecodeOptions","scope","strict","attribute","baseDecodeRegExps","xml","body","bodyRegExps","html4","decodeRegExps","fromCharCode","String","outOfBoundsChar","defaultDecodeEntityOptions","getDecodedEntity","entity","isAttribute","isStrict","decodeResult","decodeEntityLastChar","decodeResultByReference","decodeSecondChar","decodeCode","parseInt","substr","fromCodePoint","numericUnicodeMap","decodeEntity","entities","decode","decodeRegExp","_","$","fj","astralCodePoint","Math","floor","codePointAt","position","highSurrogateFrom","highSurrogateTo","emptyTags","esc","str","replace","map","setInnerHTMLAttr","DOMAttributeNames","className","htmlFor","sanitized","attrs","stack","push","children","reverse","_i","indexOf","__html","child","pop","_i2","factory","truncateContent","isNewsPublished","news","todayDate","Date","getTime","publicationDate","publicationStopDate","_ref","title","config","React","filter","newsData","isEllispisNeeded","newsIntroduction","redirectUrl","slug","categories","join","dateFormat","globalConfig","format","id","image","ReactSVG","src","url","styles","beforeInjection","svg","setAttribute","alt","dangerouslySetInnerHTML","sanitizeHtml","href","inputsStyles","newsRedirectLabel","ValidationType","getValidationPattern","validationType","Email","PhoneNumber","PhoneNumberE164","isNotBlank","trim","required","_ref$className","_ref$placeholder","placeholder","_onChange","onChange","register","hasErrors","_onFocus","onFocus","autocomplete","validation","pattern","undefined","autoComplete","event","target","pictogram","linkIcon","displayImage","line","moduleConfiguration","schedules","schedule","scheduleIcon","file","link","label","lineMap","lineMapIcon","download","lineMapLinkLabel","transportMethod","lines","groupedByType","reduce","linesByType","newEntries","get","lineType","set","Map","groupByLineType","Array","from","values","linesGroup","SchedulesSearchResultsLine","selectedLine","selectedMunicipality","selectedPointOfInterest","filteredLines","matchLine","matchMunicipality","municipalities","some","municipality","matchPointOfInterest","pointsOfInterest","pointOfInterest","filterMatchingLines","groupedByMethod","linesByTransportMethod","groupByTransportMethod","noResultLabel","tabIndex","resultsLabel","groupLines","SchedulesSearchResultsTransportMethod","errorMessage","field","formPart","filterMunicipalities","forEach","sort","filterPointOfInterests","filterLines","matchesSelectedMunicipality","matchesSelectedPointOfInterest","search","query","elements","toLabelFn","toLowerCase","toLabel","element","lineValue","municipalityValue","_useState","useState","setSelectedLine","_useState2","setSelectedMunicipality","_useState3","setSelectedPointOfInterest","_useState4","municipalityError","setMunicipalityError","_useState5","lineError","setLineError","linesWithSchedulesOrPlan","useEffect","onSubmit","pushGtmEvent","number","preventDefault","linesFieldIcon","linesFieldLabel","Autocomplete","suggestFunction","linesFieldPlaceholder","lineErrorMessage","municipalitiesFieldIcon","municipalitiesFieldLabel","filteredMunicipalities","municipalitiesFieldPlaceholder","municipalityErrorMessage","pointsOfInterestFieldIcon","pointsOfInterestFieldLabel","pointsOfInterestFieldPlaceholder","submitButtonLabel","lineId","useQueryParam","StringParam","municipalityId","showResults","setShowResults","searchCriteria","setSearchCriteria","linesWithSchedules","matchingLine","find","matchingMunicipality","foundMunicipality","blockTitle","description","SchedulesSearchForm","criteria","_document$getElementB","window","document","getElementById","focus","SchedulesSearchResults","capsule","handleClick","selected","filters","includes","onClick","transportTitleData","TEXT_MAX_LENGTH","useIsMobile","picture","redirectionUrl","RectangularButton","redirectionLabel","transportTitleSearchData","transportTitleSearchModuleConfig","isMobile","transportTitles","setFilters","filteredTransportTitles","setFilteredTransportTitles","buildTransportTitleCards","transportTitle","TransportTitle","searchFilters","newTransportTitles","transportTitleCriteria","searchCriterion","item","every","criterion","searchCriterionList","criterionGroup","idx","Capsule","removeSelectedFilter","criterionTitles","filteredArray","_toConsumableArray","updateFilters","currentTarget","wrapper","ticketOffice","addressIcon","addressLabel","address","zipcode","contactIcon","contactLabel","email","phoneNumber","extraFields","other","ticketOffices","TicketOfficeSearchResult","useMemo","municipalitiesMap","extractMunicipalities","categoriesMap","category","extractCategories","selectedCategories","setSelectedCategories","municipalityIcon","municipalityLabel","searchMunicipalities","municipalityPlaceholder","categoryIcon","categoryLabel","categoryToToggle","newCategories","content","ticketOfficePopup","mapboxgl","require","mapboxToken","setMap","previousMunicipality","setPreviousMunicipality","markers","setMarkers","mapRef","useRef","useLayoutEffect","mapInit","container","current","style","center","mapCenter","longitude","latitude","zoom","newMarkers","previousMarkers","primaryColor","red","green","blue","marker","remove","markerElement","createElement","width","height","popupContent","popup","maxWidth","setHTML","color","setLngLat","location","setPopup","addTo","updateTicketOfficeMarkers","jumpTo","centerMapToMunicipality","ref","filteredTicketOffices","matchCategories","TicketOfficeSearchForm","TicketOfficeSearchResults","TicketOfficeSearchMap","iframeLink","sandbox","svgImage","infoTrafficData","useStaticQuery","infoTrafficDetailPage","setInfoTrafficDetailPage","allDatoCmsPage","nodes","infoLocalized","info","setInfo","dataInfo","setData","parsedInfo","dataToParse","infoTraffic","uniqueLines","ele","findIndex","elem","myLinesWithTraffic","infoTrafficArray","subline","useIsToday","start","end","traffic","parseInfoTraffic","allInfoTraffics","data","useQuerySubscription","enabled","locale","token","readOnlyApi","datoCmsGlobalConfiguration","infoTrafficContentTitle","RegExp","shortDescription","textField","checked","options","option","arrowDown","files","errors","importFiles","_asyncToGenerator","_regeneratorRuntime","_callee","headers","formData","response","_context","prev","next","Accept","notifications_service_token","FormData","append","fetch","notifications_service_import_file_endpoint","method","sent","ok","Error","statusText","abrupt","json","stop","_x","formatReceivers","receivers","emailJson","to","cc","bcc","receiver","sendType","slice","sendEmail","_ref2","_callee2","subject","replyTo","formattedContent","filesPromise","importedFiles","_formatReceivers","_context2","Promise","resolve","notifications_service_endpoint","JSON","stringify","notificationType","notificationContent","emailType","htmlMessage","attachments","_x2","_x3","_x4","_x5","_x6","_x7","blockquoteNodeType","blockNodeType","codeNodeType","headingNodeType","inlineItemNodeType","itemLinkNodeType","linkNodeType","listItemNodeType","listNodeType","paragraphNodeType","rootNodeType","spanNodeType","thematicBreakNodeType","allowedNodeTypes","isHeading","node","isSpan","isRoot","isParagraph","isList","isListItem","isBlockquote","isBlock","isCode","isLink","isItemLink","isInlineItem","isThematicBreak","isObject","obj","Boolean","isNode","isStructuredText","isDocument","schema","flatten","array","$flatten","isArray","_extendStatics","__extends","setPrototypeOf","__proto__","__","constructor","create","__spreadArrays","il","j","jl","RenderError","_super","message","_this","renderRule","guard","transform","appliable","ctx","transformNode","adapter","ancestors","renderRules","hasChildren","innerNode","matchingTransform","structuredTextOrNode","spanNodeRenderRule","customMarkRules","context","marks","mark","matchingCustomRule","rule","renderNode","markToTagName","renderText","renderFragment","split","acc","renderSpanValue","defaultMetaTransformer","meta","attributes","entry","vhtmlAdapter","tagName","defaultAdapter","settings","renderInlineRecord","renderLinkToRecord","renderBlock","customRules","customNodeRules","metaTransformer","childrenWithAttribution","attribution","language","links","record","transformedMeta","blocks","formToText","configuration","fields","renderFormContent","__typename","cleanHtmlTags","tableStyle","emailBody","block","fragmentType","console","log","_ref2$adapter","logoSubsidiary","allowedTags","allowedAttributes","getFieldName","fieldName","cleanFieldName","replaceAll","newRegex","realName","test","_excluded","_extends","bind","source","_assertThisInitialized","self","ReferenceError","_setPrototypeOf","o","ReCAPTCHA","_React$Component","subClass","superClass","handleExpired","handleErrored","handleChange","handleRecaptchaRef","_proto","getCaptchaFunction","fnName","props","grecaptcha","enterprise","getValue","getResponse","_widgetId","getWidgetId","execute","_executeRequested","executeAsync","_this2","reject","executionResolve","executionReject","reset","resetter","forceReset","onExpired","onErrored","explicitRender","sitekey","callback","theme","tabindex","size","stoken","hl","badge","isolated","captcha","appendChild","componentDidMount","componentDidUpdate","_this$props","childProps","excluded","sourceKeys","_objectWithoutPropertiesLoose","SCRIPT_MAP","idCount","callbackName","getOptions","recaptchaOptions","getScriptURL","dynamicOptions","hostname","useRecaptchaNet","globalName","nonce","WrappedComponent","wrappedComponentName","AsyncScriptLoader","_Component","state","__scriptURL","asyncScriptLoaderGetScriptLoaderID","__scriptLoaderID","setupScriptURL","asyncScriptLoaderHandleLoad","setState","asyncScriptOnLoad","asyncScriptLoaderTriggerOnScriptLoaded","mapEntry","loaded","obsKey","observers","_this3","scriptURL","_options","scriptId","errored","script","async","callObserverFuncAndRemoveObserver","func","observersMap","onload","observer","onerror","componentWillUnmount","removeOnUnmount","allScripts","getElementsByTagName","parentNode","removeChild","forwardedRef","Component","ForwardedComponent","forwardRef","formCaptchaKey","_useForm","useForm","handleSubmit","formState","formValues","setFormValues","FormState","Pending","setFormState","firstClick","setFirstClick","setCaptchaValue","pushGtmFirstClickEvent","querySelectorAll","placeholderWidth","inputElement","span","textContent","visibility","font","getComputedStyle","offsetWidth","getTextWidth","getAttribute","userEmailContent","fieldsList","subsidiaryEmailContent","notEmptyEmailFieldIds","fieldId","notEmptyFiles","Submitting","emailFieldValue","emailFieldId","emailPromise","subsidiaryEmailSubject","userEmailPromises","userEmailSubject","then","Success","submitForm","noValidate","None","toValidationType","mandatory","Input","FormError","requiredFieldError","phoneNumberFieldError","emailFieldError","Textarea","parse","RadioButton","Checkbox","FileInput","newValues","Select","RichDatoCmsContent","disabled","formError","successMessage","menuData","buildWebsiteMapMenu","mainMenuLabel","mainMenuPage","submenu","submenuItem","page","headerDisplay","footerDisplay","headerDisplay1","footerDisplay1","column1","headerDisplay2","footerDisplay2","label2","page2","column2","headerDisplay3","footerDisplay3","label3","page3","column3","headerDisplay4","footerDisplay4","label4","page4","column4","headerDisplay5","footerDisplay5","label5","page5","column5","getYear","date","toDate","getFullYear","getMonth","valueSelected","control","minDate","maxDate","previousMonthAlt","nextMonthAlt","isItineraryForm","startDate","setStartDate","years","elemValue","months","renderInput","handleBlur","Controller","_ref6","_ref6$field","onBlur","wrapWithController","DatePicker","val","date_format","renderCustomHeader","_ref3","changeYear","changeMonth","decreaseMonth","increaseMonth","prevMonthButtonDisabled","nextMonthButtonDisabled","margin","display","justifyContent","_ref4","_ref5","timeValue","_ref3$field","showTimeSelect","showTimeSelectOnly","time_format","lostObjectsFormToText","nameFieldLabel","firstnameFieldLabel","addressFieldLabel","zipCodeFieldLabel","cityFieldLabel","city","phoneFieldLabel","tel","emailFieldLabel","dateFieldLabel","timeFieldLabel","time","lineFieldLabel","directionFieldLabel","direction","stopFieldLabel","messageFieldLabel","formsConfiguration","civilityOptions","subsidiaryEmailPromise","fromEmail","subsidiaryEmail","userEmailPromise","civilityFieldLabel","nameFieldPlaceholder","firstnameFieldPlaceholder","emailFieldPlaceholder","addressFieldPlaceholder","zipCodeFieldPlaceholder","cityFieldPlaceholder","phoneFieldPlaceholder","DateInput","TimeInput","directionFieldPlaceholder","stopFieldPlaceholder","messageFieldPlaceholder","attachmentsFieldLabel","formCheckbox","getSingleLineFromApi","lineReference","requestOptions","api_token","api_url","api_url_get_lines_endpoint","error","registerCustomerToSmsAlertRequest","bday","toISOString","linesIdsArray","line0","line1","line2","line3","line4","definedLinesIds","requestBody","last_name","first_name","phone","birthday","city_name","network_subscriber","allNetworkCheckbox","offers_subscriber","otherOffersCheckboxField","api_url_user_registration_endpoint","_callee3","_context3","messages","singleLineData","secondSingleLineData","selectedLines","setSelectedLines","sortingArr","orderedLines","sortedLines","_e$reference","_e$reference$replace","_e$reference2","reference","_x$reference","_x$reference$replace","sortLines","allNetworkState","_useState6","pickedLines","searchLine","lineSelectionFields","requestReponse","birthdateFieldLabel","calendarPreviousMonthButtonAlt","calendarNextMonthButtonAlt","invalidPhoneErrorMessage","allNetworkCheckboxFieldLabel","userAgreementCheckboxFieldLabel","userAgreementLink","otherOffersCheckboxFieldLabel","role","linesData","setLinesData","setSingleLineData","setSecondSingleLineData","showLoader","setShowLoader","singleLineResponse","items","secondSingleLineResponse","requestResponse","SubscribeSmsAlertInfoTrafficForm","loader","loadingErrorMessage","linesIconsData","linesWithInfoTraffic","setLinesWithInfoTraffic","_getExternalData","lang","formattedData","getLines","getInfoTraffic","linesDetails","Data","disruptedLines","trafficWithLines","formattedTrafficWithUniqueLines","DisruptedLines","getAllAffectedLines","LineId","completeLineData","Id","icone","lineCode","Code","lineCodeLowercase","basename","endsWith","getInfoTrafficFormatted","infoTrafficFormatted","removeDuplicateLinesFromArray","removeDuplicateTrafficInfoFromArray","getExternalData","info_traffic_content_title","disruption","Description","Name","ticketBlockText","titleBlockItem","titleText","titleData","getTextOrImageClass","titleBlock","textOrImage","linkImage","linkText","titleBlockLink","externalLink","internalLink","getTextOrImageLayout","nextTripLineIcon","moduleData","stops","setStops","realStops","setRealStops","nextTrips","setNextTrips","noResults","setNoResults","formatNextTripArrivalTimeAndLine","nextTrip","hour","arrivalTime","TheoricArrivalTime","PredictedArrivalTime","aimedArrivalTime","AimedArrivalTime","realArrivalTime","RealArrivalTime","timeInMinutes","minutes","getHours","getMinutes","matchingLines","Lines","arrivingMessage","roundHour","computedNextArrivals","computedLines","destination","VehicleJourneys","journey","VehicleJourneyId","computedDestination","JourneyDestination","computedLineIcon","searchNextTrips","getNextTrips","nextTripsData","Hours","searchAllTypeTripPoints","tmpStops","cleanQuery","getStopsFromApi","completeResults","stopsResults","LogicalId","param","fullQuery","extractQueryFromUrl","blockStyles","trippointFieldLabel","Stops","trippointFieldPlaceholder","tripPoint","history","replaceState","searchButtonLabel","expandArrow","inputIcon","inputWithIcons","itineraryCard","lineIcon","lineIconWrapper","lineText","selectedField","timeRowIcon","unselectedField","sendDataToParent","listStartStops","setListStartStops","switchedStart","setSwitchedStart","switchedEnd","setSwitchedEnd","listEndStops","setListEndStops","departureCoord","setDepartureCoord","arrivalCoord","setArrivalCoord","_useState7","resultError","setResultError","_useState8","checkboxValue","setCheckboxValue","_useState9","invalidDeparture","setInvalidDeparture","_useState10","invalidArrival","setInvalidArrival","formatStopsResults","queryString","urlParams","URLSearchParams","departure","arrival","PointType","getTripStopsValueAndType","dateTime","dd","getDate","padStart","mm","yyyy","today","getItinerariesData","departureId","arrivalId","departurePointType","arrivalPointType","dateType","getItineraryLePilote","tripsData","tripsResults","getItineraryLePiloteFormatedResults","catch","responseError","tripAvailabilityErrorMessage","positionErrorMessage","handleGeoLoc","navigator","geolocation","getCurrentPosition","coords","geolocationLabel","PERMISSION_DENIED","_useState11","menuIsOpen","setIsOpen","focusFn","targetNode","MutationObserver","mutationsList","_step","_iterator","_createForOfIteratorHelperLoose","done","observe","childList","_useState12","setTimeValue","setHours","round","setMinutes","_useState13","isListeningDeparture","setIsListeningDeparture","_useState14","isListeningArrival","setIsListeningArrival","_useState15","departureNote","setDepartureNote","_useState16","arrivalNote","setArrivalNote","_useState17","microphone","setMicrophone","mic","useSpeechToText","handleListenDeparture","handleListenArrival","onend","onstart","onresult","transcript","results","blur","errorEvent","action","form","departureLabel","startStop","setTimeout","getTripPointsFromApi","tripPoints","formatedStops","getStartStopList","departurePlaceholder","onKeyPress","geolocationIcon","prevState","microphonePictogram","micDepartureAltText","tmpStart","tmpEnd","swapDepartureArrivalIcon","arrivalLabel","endStop","getEndStopList","arrivalPlaceholder","micArrivalAltText","dateDepartureTypeLabel","dateArrivalTypeLabel","calendarIcon","toLocaleDateString","preposition","clockIcon","updateMarkers","previousMarker","markerType","selectedTrip","selectedTripType","departureMarker","arrivalMarker","primary_color","sections","rideSegmentCoordinates","ln","mapDepartureMarker","_markerElement","mapArrivalMarker","setDepartureMarker","setArrivalMarker","setSelectedTripType","tripsList","setTripsList","hideTrip","setHideTrip","drawSelectedTrip","mapToUpdate","selectedTripTypeValue","tripsListData","tripType","TripTitle","walkIndex","rideIndex","segment","coordinates","mapId","getSource","removeLayer","removeSource","addSource","properties","geometry","addLayer","layout","paint","updateMapItineraryWalk","walkSegmentCoordinates","updateMapItinerary","newDepartureMarker","newArrivalMarker","getFormatedDuration","duration","LePiloteItineraryForm","trips","flyTo","fastestItinerary","shortestItinerary","mostDirectItinerary","departureTime","fullTripData","DepartureTime","ArrivalTime","section","rideSegmentDetails","Line","Number","Duration","minuteLabel","_section$0$rideSegmen","_section$0$rideSegmen2","_section$0$walkSegmen","_section$0$walkSegmen2","_section$0$walkSegmen3","Departure","Time","walkSegmentDetails","walkSegmentIcon","StopPlace","Site","directionLabel","Direction","Arrival","lineIndicationLabel","lineNumber","durationIndicationLabel","destinationIndicationLabel","getTripRideSectionDetails","walkIndicationLabel","itineraryDetailsButtonIcon","setValue","forceUpdate","insertedIframe","innerHTML","head","attachShadow","paymentModuleScript","backgroundColor","moduleTag","trafficId","setTrafficId","hash","widgetWrapper","parentElement","zIndex","btnImage","buttonContent","hoverButton","setHoverButton","displayPictogram","color2","hover","querySelector","hex","hoverColor","isButtonImg","imgContent","setHover","onMouseOver","onMouseLeave","border","renderButton","internalPageLink","externalPageLink","configId","vianavigo","itinerary","override_base_url","override_external_base","scriptLoaded","setScriptLoaded","itineraryLinkTag","rel","vendorScript","itineraryScript","vianavigoItineraryScript","configurationId","sanitizeHtmlWithImages","img","table","tbody","tr","td","li","ul","ol","blockquote","div","allowedSchemesByTag","exclusiveFilter","frame","tag","attribs","startsWith","customTextRenderOptions","pageTitle","schedulesSearchData","schedulesSearchModuleConfiguration","ticketOfficeSearchData","ticketOfficeSearchModuleConfiguration","itineraryModuleConfiguration","nextDeparturesModuleConfiguration","transportTitleSearchModuleConfiguration","allNewsData","allNewsModuleConfiguration","customFormsConfiguration","lostObjectsFormLines","lostObjectsFormConfiguration","smsAlertFormConfiguration","lePiloteInfoTrafficLinesIconsData","fileExtensionRegexp","_loop","extension","titlePath","onclick","toUpperCase","len","isSimpleText","isCustomText","customContent","isTextWithImage","imagePosition","isTextWithVideo","videoPosition","displayVideo","video","isHighlight","isVideoOnly","isEmbeddedIframe","iframe","stylesToParse","parsedStyles","_Object$assign","splitted","isSchedulesSearch","SchedulesSearch","isTransportTitleSearchModule","TransportTitleSearch","isAllNewsModule","AllNews","isTicketOfficeSearch","TicketOfficeSearch","isItineraryModule","ItineraryModule","isNextDeparturesModule","NextDeparturesModule","isInfoTrafficModule","InfoTraffic","isCustomForm","CustomForm","isWebsiteMapModule","WebsiteMap","isLostObjectsFormModule","LostObjectsForm","isSmsAlertInfoTrafficFormModule","SmsAlertInfoTrafficForms","isLePiloteInfoTrafficModule","InfoTrafficLePilote","isTitleBlock","TitlePage","isLePiloteNextTripsSearchModule","LePiloteNextTripsSearch","isLePiloteItineraryModule","LePiloteItinerary","isAroundMeActigraphModule","AroundMeActigraph","isOskarPaymentModule","OskarPayment","isInfoTrafficDetailModule","InfoTrafficDetailModule","isTerDakarItinerarySearchModule","TerDakarItinerarySearchModule","isButton","Button","isVianavigoItineraryModule","VianavigoItinerary","provider","providerUid","frameBorder","allow","allowFullScreen","breadcrumbList","chevron","chevronBox","selectedLabel","pageInfo","parent","parentSlug","pageSlug","defaultLocale","sanitizedTitle","pages","subMenu","externalPage","externalPage2","externalPage3","externalPage4","externalPage5","Chevron","newsItem","_createNewsBlock","facebookDisplay","twitterDisplay","facebookUrl","setFacebookUrl","twitterUrl","setTwitterUrl","facebookLogo","twitterLogo","sideBlock","isInternal","sideLink","sideBlockInternalExternalLink","sideLinkBis","sideBlockInternalExternalLinkBis","useInternalExternalLink","linkBis","SideBlock","sideBlockImage","sideBlockTitle","isInternalPage","sideBlockImageBis","sideBlockTitleBis","urlOriginal","pageView","setPageView","host","matchMedia","matches","isQualificationStage","validPath","pushGtmPageEvent","pathname","rightSidebar","typePage","typePageContent","Worker_fn","Worker","arrayWithHoles","iterableToArray","unsupportedIterableToArray","nonIterableRest","__esModule","ITERATOR","wellKnownSymbol","SAFE_CLOSING","called","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","object","IS_DENO","IS_NODE","Deno","version","global","classof","process","uncurryThis","toObject","charAt","stringSlice","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","matched","captures","namedCaptures","replacement","tailPos","symbols","match","ch","capture","MATCH","it","isRegExp","NativePromiseConstructor","isCallable","isForced","inspectSource","IS_BROWSER","IS_PURE","V8_VERSION","NativePromisePrototype","SPECIES","SUBCLASSING","NATIVE_PROMISE_REJECTION_EVENT","PromiseRejectionEvent","FORCED_PROMISE_CONSTRUCTOR","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","promise","FakePromise","CONSTRUCTOR","REJECTION_EVENT","checkCorrectnessOfIteration","iterable","hasOwn","isPrototypeOf","regExpFlags","RegExpPrototype","R","flags","$hypot","hypot","abs","sqrt","stat","forced","Infinity","NaN","value1","value2","arg","sum","aLen","larg","aCallable","newPromiseCapabilityModule","perform","iterate","allSettled","C","capability","promiseResolve","counter","remaining","alreadyCalled","status","reason","requireObjectCoercible","isNullOrUndefined","getMethod","getRegExpFlags","getSubstitution","REPLACE","$TypeError","TypeError","max","stringIndexOf","string","searchValue","fromIndex","proto","replaceValue","IS_REG_EXP","replacer","searchString","functionalReplace","searchLength","advanceBy","O","endOfLastMatch"],"sourceRoot":""}